一、简介
STM32的外部中断是其重要功能之一。
STM32芯片有多个外部中断线,这些中断线可以连接到外部设备。例如,连接到按键、外部传感器等。当外部设备的电平发生变化(上升沿、下降沿或者双边沿触发)时,就会触发相应的外部中断。
在使用时,需要进行配置。包括开启相应的GPIO口时钟,配置GPIO的工作模式为输入模式,将GPIO与外部中断线连接起来,设置触发条件(上升沿、下降沿或双边沿),还需要编写中断服务函数来处理中断发生后的具体事务。例如,在一个简单的按键控制LED的应用中,按键连接到外部中断线,按下按键产生电平变化触发中断,在中断服务函数中实现LED状态的改变。这样能高效地实现对外部事件的响应,增强系统的交互性。
二、相关寄存器
在STM32中,我们要新了解的外部中断相关的寄存器主要有以下几种:
复用功能IO外部中断配置寄存器(AFIO_EXTICRx)
- 功能:用于将GPIO引脚连接到外部中断线。STM32F1有多个这样的寄存器(AFIO_EXTICR1 - AFIO_EXTICR4),每个寄存器负责4个引脚的映射。
中断使能寄存器(EXTI_IMR)
- 这个寄存器用于控制外部中断线上的中断请求是否被允许。每位对应一个外部中断线,置1时允许对应的中断线产生中断,置0则禁止。比如,如果要允许外部中断线0产生中断,就将EXTI_IMR的第0位置1。
事件屏蔽寄存器(EXTI_EMR)
- 它用于控制外部中断线上的事件是否被屏蔽。和中断使能寄存器类似,每位对应一个外部中断线&#x