背景在用HTTP通过ESP8266给STM32传输.bin文件时碰到接收数据被覆盖等问题终极方案DMA循环模式空闲中断半满中断环形缓冲区超时机制整体架构超时判断帧结束各组件职责组件触发条件职责判帧DMA 循环模式硬件自动DMA数据搬运无需CPU参与且调用一次接收就行DMA缓冲区满了会自动重头写。—HT 半满中断DMA 写到 128 字节搬走前半段数据防止一帧数据超过DMA缓冲区导致前面数据被覆盖❌提前搬走前半段TC全满写到 buf[255]每 256 字节一次✅ 用搬走后半段和 HT 形成接力IDLE 空闲中断RX 空闲 1 字节时间搬最后一段数据重置定时器❌超时定时器IDLE 中断里重置计数值防止空闲中断误判可能一帧里会有微弱间隔超时后判定帧真正结束✅环形缓冲区HT/IDLE 写main 读防止读写速度不一致解耦生产者和消费者速度—