功能实现:按键按下,会产生一次下降沿,产生外部中断,在中断服务函数里面使LED亮;
引脚对应:
KEY——PE3;
LED——PC0
外部中断小细节:
7组中断服务函数:
EXTI0
EXTI1
EXTI
EXTI3
EXTI4
EXTI5~EXTI9:共用一个
EXTI10~EXTI15:共用一个
每个GPIO都可以产生外部中断:
EXTI0:对应PA0~PG0,以此类推
触发发生:边沿触发,上升沿触发,下降沿触发,上升沿或者下降沿(双边沿触发)。
STM32CubeMx 的配置:
初始化函数中:
得调用这个中断优先级函数
中断服务函数原型:EXTI3_IRQHandler
会直接生成带这个中断
中断服务函数判断以及配置:HAL_GPIO_EXTI_IRQHandler
_weak虚函数:HAL_GPIO_EXTI_Callback:得自己重新配置,名字不能改
外部中断服务函数自己定义:
生成库函数时,会传入GPIO_PIN_3,所以直接判断传入的参数就可以了
如果对GPIO的函数不太懂,可以看这个文章,简述了GPIO的常用函数:
https://blog.csdn.net/m0_58832575/article/details/124881407?spm=1001.2014.3001.5501