踩坑记录: 32系列EXTI问题

简介: 踩坑记录: 32系列EXTI问题

在最近的一个项目中,用了多个外部中断线,刚开始并没有注意外部中断的个数,看资料认为所有 10 口都可以配置为中断,然后原理图就直接连接 6 根外部中断,后来发现,PA0、 PB0、PC0 这些共用一个外部中断线,注意是共用,根本就不能同时存在,同一时间只能有一 个中断使用这个中断线,初始化的时候,谁是最后初始化的,那么这根中断线就分配给了谁。希望大家今后不要出现我这种错误。

这是我的引脚分配:但最终有效的中断的是 BUTT3、BUTT4、BUTT5,而 BUTT1、BUTT2 中断无效

以下是资料截图摘自《N32L40x 系列于 基于 32 位 位 ARM® Cortex®-M4F 微控制器 用户手册 V2.0》,后经查证 STM32 系列也是同样的问题。

EXT10-4 中断是这样的, 每个中断有一个外部中断线

EXT19_5 和 EXT110_15 中断也是那样,只不过是共用的中断函数,而不是共用一个中断线,这可以中断之后查询是哪根线触发了。

当然如果工程师明确知道 PA0 和 PB0 不会同时触发,并目触发有相互依赖关系,可以通 过分时设置 PA0 和 PB0 的外部中断功能。但是在大多数情况下,外部中断的触发都是随机 的,那么在设计原理图的时候就要考虑到这种情况,把用到的外部中断管脚设置到后缀不同的管脚上,如 PA0,PA1,PB3,PC8,..PD12,PF16,在一个工程中最多能使用 16 个外部中断,并且每个管脚的后缀不同。如果设计电路板没有考虑到这种情况,则需要根据实际情况把触发频繁的设置为外部中断,不频繁的通过检测管脚电平变化来判断是否有触发。


相关文章
|
6天前
|
C#
C#拾遗补漏之goto跳转语句
在我们日常工作中常用的C#跳转语句有break、continue、return,但是还有一个C#跳转语句很多同学可能都比较的陌生就是goto,今天大姚带大家一起来认识一下goto语句及其它的优缺点。
|
6天前
|
存储 缓存 Linux
中断系列第三篇:中断实操一下?
中断系列第三篇:中断实操一下?
45 0
|
7月前
|
开发工具 数据安全/隐私保护 C++
[笔记] 编译bit7z踩坑记录
[笔记] 编译bit7z踩坑记录
197 0
|
6天前
|
存储
【51单片机】初学者必读的一文【探究定时计数器与中断系统是如何配合起来的?】(9)
【51单片机】初学者必读的一文【探究定时计数器与中断系统是如何配合起来的?】(9)
|
7月前
|
存储 芯片
STM32速成笔记(十一)—EEPROM(AT24C02)
本文详细介绍了什么是AT24C02,介绍了它的引脚,读/写时序,给出了应用实例和详细的程序设计。最后,简单介绍了AT24C02的应用场景。
167 0
STM32速成笔记(十一)—EEPROM(AT24C02)
|
8月前
|
Linux 开发工具
瑞芯微RV1109配置GPIO设备树修改笔记(熟悉新平台从点灯大法开始)
瑞芯微RV1109配置GPIO设备树修改笔记(熟悉新平台从点灯大法开始)
181 0
|
10月前
|
存储 SQL
机房重构Debug记录
机房重构Debug记录
|
数据格式
HDL-Bits 刷题记录 04
HDL-Bits 刷题记录 04 搬运本人博客
92 0
HDL-Bits 刷题记录 04
HDL-Bits 刷题记录 03
HDL-Bits 刷题记录 03
74 0
HDL-Bits 刷题记录 03
|
消息中间件 Ubuntu 测试技术
ESP32-C3入门教程 基础篇(二、GPIO中断、按键驱动测试)
测试第二课,主要了解GPIO中断使用,和测试按键驱动
988 0
ESP32-C3入门教程 基础篇(二、GPIO中断、按键驱动测试)