STM32
直播中

张娟

7年用户 1990经验值
私信 关注
[问答]

如何利用STM32实现LED灯状态翻转?

如何利用STM32实现LED灯状态翻转?

回帖(1)

李思路

2021-11-16 14:14:19
实现目标:
按键按下一次 LED灯状态翻转一次
  1.在stm32cube中配置引脚信息、开启中断以及中断优先级,生成代码;
  2.在keil中 main函数无需添加 中断的配置在MX_GPIO_Init()中自动实现;
  3.在keil中 的gpio.c(为系统建立的)文件中,添加void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)函数的实现 即进入中断后的中断处理函数;
  注意:
  1.关于GPIO的外部中断有两个函数
  1)void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
  2)void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
  我们操作的为第二个函数,而实质上在第一个函数会调用第二个函数,而外部中断触发后会自动进入第一个函数
  继而调用第二个函数。多个外部中断调用时,我们需要做的是判断哪个中断源,所以需要判断触发引脚。这是由于PA0-PB0-PE0D都是EXT0线 所以只要判断引脚而不需要判断哪个组。
   
  2.按键触发外部中断 由于抖动的原因需要加入延时(尽管这样的方式也会存在问题)。
  3.hal的库在进入外部中断后需要将中断标志位清零,下次才能进入。
  
  
举报

更多回帖

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