1.在STM32Cubmx中的设置
a.中断的引脚
b.在GPIO中设置触发方式
c.在NVIC中开启外部中断,以及设置中断优先级(F0只有中断优先级没有抢占优先级)
2.在STM32F0XX.it.h中会生成中断函数EXTI4_15_IRQHandler(void)函数内部实际先清除中断标志位
然后执行hal_gpio.h内的中断回调函数HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)在内部写中断代码即可
以下为按键外部中断控制LED灯的示例
#include "pbdata.h" void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { switch(GPIO_Pin) { case KEY1_Pin: { if(HAL_GPIO_ReadPin(KEY1_GPIO_Port,KEY1_Pin)==0) { HAL_Delay(20); if(HAL_GPIO_ReadPin(KEY1_GPIO_Port,KEY1_Pin)==0) LED_1_T; } } } }
扫描二维码关注公众号,回复:
5990577 查看本文章