STM32F103之外部中断EXTI

本篇主要介绍外部中断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位的响应优先级。

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

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

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

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32F103系列的外部中断是通过EXTI(External interrupt/event controller)模块来实现的。该系列的中断控制器支持19个外部中断事件请求,其中线0-15对应外部IO口的输入中断,线16连接到PVD输出,线17连接到RTC闹钟事件,线18连接到USB唤醒事件。每个中断事件都有独立的触发和屏蔽设置。\[2\] STM32F103的每个IO口都可以作为外部中断的中断输入口。中断线0-4每个中断线对应一个中断函数,中断线5-9共用中断函数EXTI9_5_IRQHandler,中断线10-15共用中断函数EXTI15_10_IRQHandler。每个中断线对应了最多7个IO口,需要通过配置来决定对应的中断线配置到哪个GPIO口上。\[2\] 在配置外部中断时,需要进行映射关系的配置。每个外部中断线对应一个外部中断通道和一个外部中断服务函数。具体的映射关系可以参考引用\[3\]中的表格。同时,还需要对GPIO引脚进行配置,将对应的中断线映射到相应的GPIO口上。\[3\] 总结来说,STM32F103外部中断功能可以通过配置EXTI模块和GPIO口来实现,可以根据需要选择不同的中断线和GPIO口进行配置。 #### 引用[.reference_title] - *1* *3* [STM32F103标准库开发:外部中断(EXTI)实验](https://blog.csdn.net/MQ0522/article/details/121491547)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [STM32F103外部IO中断](https://blog.csdn.net/zht_2000/article/details/103556506)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值