[HAL库]STM32之外部中断

实现目标:
按键按下一次 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的库在进入外部中断后需要将中断标志位清零,下次才能进入。

[HAL库]STM32之外部中断_第1张图片

你可能感兴趣的:(STM32)