STM32F103之外部中断EXTI

本文详细介绍了STM32中外部中断EXTI的工作原理和配置步骤,包括GPIO口的电平变化检测、EXTI中断通道、NVIC中断管理系统以及中断优先级设置。通过示例代码展示了EXTI初始化配置,以及中断服务函数的实现,帮助读者理解EXTI如何在下降沿触发中断并执行相应的中断服务程序。
摘要由CSDN通过智能技术生成

本篇主要介绍外部中断EXTI(Extern Interrupt),外部中断顾名思义就是由外部的某种变化引起的中断,这里外部也就是GPIO口,变化也就是GPIO口的引脚电平的变化,例如从高电平变化到低电平出现的下降沿变化,或者从低电平变化到高电平出现的上升沿变化。

当我们开启外部中断,就可以识别GPIO口的电平变化,然后EXTI就会立即向NVIC(中断管理系统)发出中断申请,经过NVIC裁决后即可中断CPU主程序,使CPU执行EXTI对应的中断程序。

EXTI触发的方式:上升沿/下降沿/双边沿/软件触发

EXTI支持的GPIO口:所有的GPIO口都可以触发外部中断,但是相同的Pin不能同时触发中断,因为相同的Pin口是占相同的EXTI通道的,例如PA0和PB0是同样中断通道EXTI0。

EXTI通道数:16个GPIO_Pin,外加PVD输出、RTC闹钟、USB唤醒、以太网唤醒。

触发的响应方式:中断响应/事件响应(简单的说中断响应是直接进入中断服务函数里面的,而事件响应则是将这个电平变化带到其他外设处理上的一个信号)

对于EXTI基本结构主要是:先对GPIO进行配置,然后对AFIO中断引脚选择,然后配置EXTI边沿检测及控制,然后配置NVIC。具体配置可以依据下图:

另外说一句,在STM32中AFIO主要用于引脚复用功能的重映射、中断引脚的选择

下面来说一下对于外部中断初始化的代码配置:

下面就来介绍一下NVIC的优先级分组,NVIC的中断优先级是由优先级寄存器的4位(0-15)决定,这4位可以进行切分,分为高n位的抢占优先级和低4-n位的响应优先级。

抢占优先级是如果前面有正在进行的中断处理函数,那么也可以进行抢占,也就是先处理抢占优先级高的中断,这么说来抢占优先级即可进行中断嵌套。

而响应优先级不可以进行抢占,只是进行一个中断优先级的判断,如果抢占优先级相同的情况下再比较响应优先级,如果响应优先级高的中断,即可进行“插队”,优先响应响应优先级高的中断。

下面就是中断服务函数的代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值