STM32 中断

来源:互联网 发布:淘宝客进入等级 编辑:程序博客网 时间:2024/04/30 06:26

STM32支持19个外部中断。

中断线0~15:对应外部IO口的输入中断;

中断线16:连接到PVD输出;(可编程电压检测器)

中断线17:连接到RTC闹钟事件;

中断线18:连接到USB唤醒事件。

STM32的IO口有很多,相应的中断线却只有16个,如何将IO口与中断线对应呢?STM32是这样解决的:

GPIOA~GPIOG的[0:15]分别对应中断线的0~15。这样每条中断线最多可以对应7个IO口。

例如,GPIOA_Pin_0,GPIOB_Pin_0,GPIOC_Pin_0,GPIOD_Pin_0,GPIOE_Pin_0,GPIOF_Pin_0,GPIOG_Pin_0,这7个IO口都对应中断线0。

中断线每次只能连接一个IO口,STM32使用EXTICR来决定中断线配置到哪个GPIO上。

配置完中断,还有一个重要的部分是中断响应函数。

STM32的中断响应函数与51的中断响应函数不同,51中通过关键字interrupt来识别中断,STM32通过查找中断向量表来识别。

STM32在中断向量表中有关于外部中断的函数。

EXTI0_IRQHandler();line0

EXTI1_IRQHandler();line1

EXTI2_IRQHandler();line2

EXTI3_IRQHandler();line3

EXTI4_IRQHandler();line4

EXTI9_5_IRQHandler();line9~5

EXTI15_10_IRQHandler();line15~10

PVD_IRQHandler();PVD through EXTI Line detect

RTCAlarm_IRQHandler();RTC Alarm through EXTI Line

USBWakeUp_IRQHandler();USB

当外部中断线上发生了选择的边沿事件,挂起寄存器PR的对应位会被置为1。要想重复使用中断,要记得清除挂起标志。





0 0