本章节讲解STM32外部中断的基础知识以及中断的配置。
首先新建工程,按照教程一完成基础配置,然后根据开发板原理图配置输出引脚的高低电平,比如,我将PA6配置为低电平能使其发光。
根据下图,需要将PE4配置为中断模式。
在此处补充一些中断的基础知识。
STM32F4 的每个 IO 都可以作为外部中断的中断输入口,这点也是 STM32F4 的强大之处。STM32F407 的中断控制器支持 23个外部中断/事件请求。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。STM32F407 的 23 个外部中断为:
EXTI 线 0~15:对应外部 IO 口的输入中断。
EXTI 线 16:连接到 PVD 输出。
EXTI 线 17:连接到 RTC 闹钟事件。
EXTI 线 18:连接到 USB OTG FS 唤醒事件。
EXTI 线 19:连接到以太网唤醒事件。
EXTI 线 20:连接到 USB OTG HS(在 FS 中配置)唤醒事件。
EXTI 线 21:连接到 RTC 入侵和时间戳事件。
EXTI 线 22:连接到 RTC 唤醒事件。
GPIO 的引脚 GPIOx.0~GPIOx.15(x=A,B,C,D,E,F,G,H,I)分别对应中断线 0~15。这样每个中断线对应了最多 9 个 IO 口,以线 0 为例:它对应了 GPIOA.0、GPIOB.0、GPIOC.0、GPIOD.0、GPIOE.0、GPIOF.0、GPIOG.0,GPIOH.0,GPIOI.0。而中断线每次只能连接到 1 个 IO口上,这样就需要通过配置来决定对应的中断线配置到哪个 GPIO 上了。
所以,首先将PE4配置为EXTI4。
由按键原理图可得,当按键接通时为低电平,所以PE4要设置成下降沿触发、上拉。
在NVIC中使能中断线4。
生成代码。
在左侧项目栏,一次点击下列文件,打开it.c
依次按下图顺序点击,即可找到中断服务函数,然后在相应位置添加代码即可。
编译后将代码下载到开发板,LED灯亮,按下开关LED灯灭。