STM32F411 Discovery学习笔记(三)中断与按键

拖了好几天终于进入到中断的学习了
我们的任务目标是采用中断的方式通过411板上的按键控制LED的亮灭

中断源的设置

打开STM32CubeMx,按照之前的方法新建文件
设置中断源,查阅开发板手册发现开发板有两个按键,一个是User一个是Reset.很显然我们要用User键。
在这里插入图片描述
很显然USER键连接到了GPIO A0上,但是低有效还是高有效并不知道。
别急,manual一定会写的。
在这里插入图片描述
根据原理图,当按键被按下的时候,PA0读入高电平,也就是说PA0高有效。那么一切都简单了。
在这里插入图片描述
在cubeMx里将PA0设置成外部中断0
在这里插入图片描述
进一步对PA0进行设置,将其设置为上升沿触发,也就是我们按下按键的一瞬间执行中断服务子函数。
在这里插入图片描述
开启中断使能。生成MDK工程

编写中断服务子程序

/* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */
		HAL_GPIO_WritePin(GPIOD, GPIO_PIN_13, GPIO_PIN_RESET);
		HAL_Delay(1000);
    /* USER CODE BEGIN 3 */
  }
/* USER CODE BEGIN 4 */
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
	if (GPIO_Pin==GPIO_PIN_0)
	{
		HAL_GPIO_WritePin(GPIOD, GPIO_PIN_13, GPIO_PIN_SET);
		HAL_Delay(1000);
	}

}
/* USER CODE END 4 */

编译烧录程序,成功!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值