STM32外部中断标记溢出
STM32外部中断标记溢出
更多
在STM32中,外部中断标记溢出通常指外部中断事件发生过快,导致EXTI(外部中断控制器)的中断标志位(位于EXTI_PR寄存器中)在还没来得及被清除时多次被触发,造成中断事件丢失或系统响应异常的现象。以下是详细分析和解决方案:
问题原因
-
中断频率过高
- 外部信号变化(如上升沿/下降沿)频率超过中断服务程序(ISR)的处理速度。
- 例如:信号在1ms内触发10次中断,但ISR执行一次需2ms,导致后续事件被忽略。
-
中断标志未及时清除
- 若在ISR中未及时清除
EXTI_PR对应的中断标志位,硬件无法记录新的中断事件(标志位只能记录一次事件)。
- 若在ISR中未及时清除
-
中断优先级或嵌套问题
- 高优先级中断抢占当前中断,延长了外部中断的处理时间,加剧事件丢失。
解决方案
1. 优化中断服务程序(ISR)
- 缩短ISR执行时间:仅保留关键操作(如置位标志、读取数据),复杂逻辑移至主循环或低优先级任务。
- 及时清除中断标志:在ISR开头或结尾清除
EXTI_PR标志:void EXTI0_IRQHandler(void) { if (EXTI->PR & EXTI_PR_PR0) { // 检查标志位 // 处理逻辑 EXTI->PR = EXTI_PR_PR0; // 清除标志(写1清零) } }
2. 降低中断触发频率
- 硬件滤波:在信号输入端增加RC低通滤波电路,滤除高频噪声。
- 软件防抖:在ISR中禁用中断一段时间(通过定时器重新启用),或采用状态机延时判断。
3. 改用DMA或定时器计数
- 脉冲计数模式:
- 对于高频脉冲信号(如编码器),使用TIM定时器的输入捕获或编码器模式,自动计数脉冲并通过DMA传输。
- 事件触发DMA:
- 配置EXTI为事件模式(非中断),直接触发DMA搬运数据,无需CPU介入。
4. 调整中断优先级
- 降低外部中断优先级(NVIC配置),避免被高优先级中断阻塞:
HAL_NVIC_SetPriority(EXTI0_IRQn, 15, 0); // 设置为最低优先级 HAL_NVIC_EnableIRQ(EXTI0_IRQn);
5. 启用溢出保护机制
- 某些STM32型号支持中断溢出标志(如EXTI的
RTSR/FTSR状态位)。监控这些标志可检测事件丢失: - 定期检查EXTI状态寄存器,结合定时器补充处理。
关键配置步骤
- 确认EXTI中断线配置正确(以CubeMX为例):
- 选择GPIO引脚及触发方式(上升沿/下降沿)。
- 启用NVIC中断,设置优先级。
- 清除标志位:在ISR中务必清除
EXTI_PR对应位。 - 监控频率:通过逻辑分析仪测量实际信号频率,确保不超过ISR处理能力。
示例场景
高频按钮信号:
- ❌ 错误做法:每次按下都触发中断,处理复杂逻辑(如LCD刷新)。
- ✅ 正确做法:
- ISR内仅置位
button_pressed标志并清除中断。- 主循环中检查
button_pressed,执行防抖和业务逻辑。- 或改用定时器扫描GPIO状态(轮询替代中断)。
通过上述方法,可有效避免中断标志溢出问题,确保系统稳定响应高频事件。
STM32串口溢出中断问题
之前调试程序,遇到了串口溢出中断的问题,导致主程序被卡死。这里总结分享一下经验,希望对读者有用。对于STM32F103系列单片机,使能接收
资料下载
小峰
2021-11-30 15:36:15
STM32单片机外部中断简介 STM32单片机外部中断的配置过程
STM32 单片机是一款高性能、低功耗的 32 位微控制器,具有强大的计算能力、灵活的外设模块以及优秀的扩展性,开发周期短、成本低。在单片机应用中,外部中断
2023-08-15 18:21:05
STM32的IO外部中断EXTI的使用
的方式访问输入引脚,还可以通过另外一种叫做外部中断的方式来对引脚的输入信号进行检测,本篇首先介绍下EXTI的结构,接着介绍外部
2023-06-22 10:21:00
7天热门专题
换一换
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 如何进行编码器的正确接线?接线方法介绍
- 什么是场效应管?它的作用是什么?
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- amoled屏幕和oled区别
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 苹果笔记本macbookpro18款与19款区别
- 通讯隔离作用
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机