首先确认丢包原因:DMA+空闲中断方式在空闲中断触发后,若数据处理耗时较长,期间新数据会覆盖DMA缓冲区,导致丢包。排查时用逻辑分析仪抓串口波形,对比接收计数与发送计数;检查DMA缓冲区大小是否足够,中断优先级是否被高优先级任务阻塞。改造为环形缓冲区:DMA仍配置为循环模式,但将DMA目标地址指向环形缓冲区,空闲中断中仅更新写指针并置标志,主循环从环形缓冲区读取。关键点:环形缓冲区大小取2的幂,用原子操作或关中断保护指针;DMA半满/全满中断也用于触发处理,避免空闲中断延迟。注意HAL库中DMA循环模式需手动清除标志,且空闲中断需在CubeMX中使能。实测时用大流量数据验证,确保读写指针不越界。