STM32
直播中

juju宇哥

8年用户 1367经验值
擅长:479809
私信 关注
[问答]

怎样通过411板上的按键去控制LED的亮灭呢

中断源该如何去设置呢?
怎样通过411板上的按键去控制LED的亮灭呢?

回帖(1)

李丽华

2021-11-17 09:15:49
  拖了好几天终于进入到中断的学习了
  我们的任务目标是采用中断的方式通过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 */
  编译烧录程序,成功!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分