STM32单片机 空闲中断

空闲中断是DMA异步接收的"帧完成"信号。当串口总线空闲时长超过一个字节,硬件便认定一帧完整数据发送结束,随即产生中断。CPU在中断服务函数中快速计算帧长、取走数据并立即重启DMA,随后通过标志位通知主循环处理。主循环处理完毕,清除标志,继续自身任务。若发送端发送的数据因缺少结尾空闲信号而成为"半截帧",空闲中断不会触发,此时由超时机制兜底:每次收到新字节就刷新超时定时器,若定时器溢出,则判定接收超时,强制取走缓冲区中的残留数据,确保数据不遗漏。

DMA一旦配置并启动,就会一直处于"待命"工作状态,无论发送端是否有数据传来。

我们可以将之前"自动传送带"的比喻再延伸一下,来精准理解这个"一直工作"的两种状态:

  1. 空转待命(无数据时):传送带(DMA)的电源是开着的,它时刻准备着。但没有货物(数据)触发入口传感器,传送带就静止不动,安静地等待,几乎不消耗任何CPU资源。

  2. 即刻响应(有数据时) :当一个字节数据到达(好比一个货物被放上传送带入口),硬件外设本身就会瞬间给DMA一个触发信号,传送带精确地转一下,把这个字节送到内存的指定位置。整个搬运过程完全不需要CPU参与。

所以,DMA一直"在工作"是指它始终处于一种"随时待命、自动响应"的硬件电路中,而不是在空转耗能。它就像一个敬业的门卫,永远在岗,但只在有人进出时才行动。

相关推荐
wuyk55517 小时前
防逆向基础:在量产固件中关闭调试接口并设置读保护(RDP)的正确姿势
stm32·单片机·嵌入式硬件·性能优化·重构
zhangrelay21 小时前
单片机原理与接口技术-2026融合版-从MEGA2560-ESP32与Wokwi到ROS2-Lyrical与具身智能栈
单片机·嵌入式硬件
lhbweilai21 小时前
分析FreeRTOS内核对象API的源码实现(八)
c语言·开发语言·stm32·单片机
艾络迅Acceleronix1 天前
环境监测终端:STM32+EG800Z AT+ 艾络迅平台实战|多传感器采集联动全流程
c语言·stm32·单片机·嵌入式硬件·物联网·1024程序员节
涂山苏苏⁠1 天前
stm32复习总结
stm32·单片机·嵌入式硬件
Zwawa1 天前
一只按键不只“按下”:短按、长按和连按如何共存
c语言·单片机·嵌入式
苏格拉真没有底1 天前
ESP32 AI MCP调试器
stm32·单片机·嵌入式硬件
深圳老胡1 天前
压力检测空吸功能硬件方案全解析:主流压力传感器品牌与实现路径
笔记·单片机·代码规范
硅基造物主1 天前
STM32 从 0 到 1 做智能家居(二):把开发环境一次配好
stm32·mqtt·智能家居·hal库·esp-12f
zhangzhangkeji1 天前
stm32, HAL 库,PVD 与低功耗:
stm32