STM32单片机 空闲中断

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

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

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

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

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

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

相关推荐
SUNNYSPY00122 分钟前
75N120-ASEMI户用储能PCS专用75N120
单片机
piaoyiren39 分钟前
单片机串口控制单路共阳极数码管
单片机·嵌入式硬件·51单片机
南山电子nscn1 小时前
友顺科技UTC UR56XX系列在18V高压输入与1µA级超低功耗之间实现了出色的平衡
科技·单片机·嵌入式硬件·低压差线性稳压器
万亿少女的梦1681 小时前
基于STM32F103C8T6与ASR Pro的语音控制四足机器人设计
stm32·语音识别·嵌入式系统·四足机器人·舵机控制
嵌入式-老费2 小时前
esp32开发与应用(与stm32f103工控板配合之上篇)
stm32·单片机·嵌入式硬件
周洲08305 小时前
裸机程序 vs RTOS架构深度对比|嵌入式项目选型标准、源码实战、优缺点全解析
stm32·嵌入式硬件
M海洋5 小时前
Ubuntu dialout 串口权限授权
linux·单片机·ubuntu
piaoyiren6 小时前
51单片机播放音乐
单片机·嵌入式硬件·51单片机
执迷不悟8236 小时前
51单片机
单片机·嵌入式硬件·51单片机
zjxtxdy7 小时前
TIM输入捕获
单片机·嵌入式硬件