STM32单片机 空闲中断

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

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

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

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

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

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

相关推荐
zlinear数据采集卡几秒前
数据采集卡从入门到精通(42):项目实战三——设备预测性维护系统,从布点到预警
开发语言·单片机·嵌入式硬件·安全·fpga开发
嵌入式阿蔡11 小时前
传感器_03:电机驱动——让 GPIO 当指挥官,别让 GPIO 当电源
网络·stm32·单片机·嵌入式硬件·嵌入式实时数据库
国科安芯13 小时前
ASL706S:让 MCU 不再“失忆跑飞“的守护芯片
分布式·单片机·嵌入式硬件·安全·fpga开发·架构
树的枝16 小时前
【STM32】03.中断和EXTI外设
笔记·stm32·单片机·嵌入式硬件
单片机杂货铺17 小时前
【单片机毕业设计选题】基于stm32单片机儿童公路车速度检测报警
stm32·单片机·嵌入式硬件·51单片机·硬件工程·课程设计
振南的单片机世界18 小时前
看门狗硬核拆解:1.6秒不喂狗,硬件强制“掀桌子”
arm开发·stm32·单片机·嵌入式硬件
嵌入式阿蔡18 小时前
Linux_01:交叉编译与开发环境实战——从单片机跨到 Linux 的第一道坎
linux·运维·网络·单片机·嵌入式硬件·嵌入式实时数据库
NYFEA20 小时前
徕飞 FCA系列全面上新,一站式I/O扩展国产替代方案
单片机·嵌入式硬件
国科安芯21 小时前
ASL622S:把“信号失真“挡在门外的航天级运放
网络·单片机·嵌入式硬件·架构·状态模式·低轨卫星星座
XiHongShi201621 小时前
STM32H7 FLASH和SRAM标准例程
stm32·单片机·嵌入式硬件