STM32F103 外部中断(EXTI)介绍以及代码

本文介绍了STM32F103的外部中断EXTI控制器,包括19个输入线、边缘检测选项以及挂起、中断屏蔽寄存器的工作原理。流程涉及信号选择、触发条件、挂起寄存器状态和中断屏蔽。以GPIOC15为例,展示了如何设置中断模式、NVIC配置和中断服务函数设计,中断发生时会在OLED显示屏上计数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

STM32 外部中断/事件控制器由19个产生事件/中断要求的边沿检测器组成。每个输入线可以独立地配置输入类型(脉冲或挂起)和对应的触发事件(上升沿或下降沿或者双边沿都触发)。每个输入线都可以被独立的屏蔽。挂起寄存器保持着状态线的中断要求。

对以上序号进行说明:

①InputLine:外部信号输入线,总共有 19 个来源,分别是 GPIO0~15(总共 16 个),正好连接到 EXTI0~15,EXTI16 连接到 PVD 输出,EXTI17 连接到 RTC 闹钟事件,EXTI18 连接到 USB,所以 /19 代表 19 个通道

②Edge Detect :边缘检测,可以是上升沿触发,也可以是下降沿触发,还可以是上升沿和下降沿都可以分别触发,对应图中 ②-1 和 ②-2

③Software interrupt event register:软件中断事件寄存器

④Pending request register:挂起寄存器

⑤interrupt mask register:中断屏蔽寄存器

整个外部中断的流程是这样的

1、选择外部信号输入线

2、信号选择以什么方式来触发,可以是上升沿或下降沿等

3、信号经过或门到 Pending request register,如果发生了触发,该寄存器的 PRx 位将置 1

4、最后,整个信号和中断屏蔽寄存器经过与门到 NVIC,这要求中断屏蔽寄存器必须置 1

如果用 GPIO 作为外部中断,需要配置 AFIO,来选择是哪个端口,可以是 GPIOA/GPIOB/GPIOC/GPIOD/GPIOE/GPIOF/GPIOG,需要注意的是,对于同一个 Pin 脚,只能选择配置一个端口,例如我配置 Pin15 为 GPIO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值