STM32-HAL库-EXTI外部中断配置及个人经验
参考文章:(3)STM32使用HAL库操作外部中断——实战操作 - 狗尾巴草word - 博客园 (cnblogs.com)
具体操作在大佬的文章里都有了,很详细。我来说说我遇到的问题及解决方法。
1.
这里必须选择上下拉,我之前看的其他教程贴都没有选择上下拉,只配置个上下沿触发中断就完了,但实测如果没有选择上下拉,会导致按键中断不稳定,按一次会执行很多次回调函数。
具体怎么选择上下来,看原理图
KEY0当按键按下后会变成低电平,所以要上拉以检测低电平变化,同理中断触发选下降沿Falling Edge。
2.中断回调函数:

注意这里的HAL_Delay,这是用来消抖按键的,没有的话中断会很不稳定,但是如果在中断中存在delay的话,那就必须设置一下NVIC,否则主程序运行时突然有外部中断的话,主函数会停止运行,整个卡住。

__HAL_EXTI_Clear_IT这个可有可无,因为在服务函数中Cubemx已经写好了,在中断函数中再加一次也没事,可有可无。

浙公网安备 33010602011771号