踩坑记录: 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 个外部中断,并且每个管脚的后缀不同。如果设计电路板没有考虑到这种情况,则需要根据实际情况把触发频繁的设置为外部中断,不频繁的通过检测管脚电平变化来判断是否有触发。


相关文章
|
数据采集 自然语言处理 Python
如何使用Gensim库进行情感分析?
使用Gensim进行情感分析,需安装Gensim库,导入相关模块(Word2Vec, KeyedVectors, nltk等)。数据预处理涉及分词和去除停用词,然后用Word2Vec训练词向量模型。已训练的模型可加载用于计算句子情感分数,通过平均词向量表示句子情感。代码提供了一个基础的情感分析流程,可按需求调整。
326 1
CMake Error: The source “xxx“ does not match the source “yyy“ used to generate cache. Re-run cmake
CMake Error: The source “xxx“ does not match the source “yyy“ used to generate cache. Re-run cmake
1508 0
|
Go 数据处理
|
弹性计算 NoSQL 网络安全
软件开发常见之云数据库Redis连接不上如何解决,修改配置后,需要重启下redis服务,配置才能生效呢,是重启,而不是重载配置,最后导致的问题是点击了的重启,配置修改了之后必须点击重启,而不是修改
软件开发常见之云数据库Redis连接不上如何解决,修改配置后,需要重启下redis服务,配置才能生效呢,是重启,而不是重载配置,最后导致的问题是点击了的重启,配置修改了之后必须点击重启,而不是修改
|
NoSQL 关系型数据库 Redis
Redis6入门到实战------ 九、10. Redis_事务_锁机制_秒杀
这篇文章深入探讨了Redis事务的概念、命令使用、错误处理机制以及乐观锁和悲观锁的应用,并通过WATCH/UNWATCH命令展示了事务中的锁机制。
Redis6入门到实战------ 九、10. Redis_事务_锁机制_秒杀
|
XML 关系型数据库 MySQL
Web Services 服务 是不是过时了?创建 Web Services 服务实例
本文讨论了WebServices(基于SOAP协议)与WebAPI(基于RESTful)在开发中的应用,回顾了WebServices的历史特点,比较了两者在技术栈、轻量化和适用场景的差异,并分享了使用VB.net开发WebServices的具体配置步骤和疑问。
344 0
Exception in thread "main" java.lang.IllegalArgumentException: U+6570 ('.notdef') is not available in the font Helvetica-Bold, encoding: WinAnsiEncoding 这个问题如何解决
【6月更文挑战第19天】Exception in thread "main" java.lang.IllegalArgumentException: U+6570 ('.notdef') is not available in the font Helvetica-Bold, encoding: WinAnsiEncoding 这个问题如何解决
2723 2
|
安全 Windows
Windows 无法连接打印机,请检查打印机名并重试。如果这是网络打印机,请确保打印机已打开,并且打印机地址正确。报错代码:0x00000709
Windows 无法连接打印机,请检查打印机名并重试。如果这是网络打印机,请确保打印机已打开,并且打印机地址正确。报错代码:0x00000709
Windows 无法连接打印机,请检查打印机名并重试。如果这是网络打印机,请确保打印机已打开,并且打印机地址正确。报错代码:0x00000709
Python语言如何使用MindOpt建模并求解混合整数线性规划问题
MindOpt是一款高效的优化算法软件包,求解算法实现了线性规划(LP)、混合整数线性规划(MILP)、二次规划(QP),可以支持命令行、c、c++、java和python调用。接下来我们将发布一系列文章,讲述各个语言如何使用 MindOpt 来求解数学规划问题。
Python语言如何使用MindOpt建模并求解混合整数线性规划问题