STM32F407+ESP8266跑FreeRTOS,串口DMA收数偶尔丢包,快被搞疯了

STM32 · 马超 · 2 浏览
板子是自己画的,F407VG做主控,ESP8266走UART3 AT指令连MQTT,波特率115200。RTOS三个任务:传感器采集、串口解析、上报。串口用DMA+IDLE中断收,环形缓冲,解析任务等信号量取数据。 现象:跑几个小时必出一次丢包,AT返回的JSON断在半截,长度对不上。抓过逻辑分析仪,波形干净没毛刺,DMA计数也正常。已试过:加大缓冲、IDLE中断里关DMA重配、信号量改互斥量、解析任务优先级调高调低都试了,没用。怀疑过是IDLE中断和DMA完成中断打架,或者FreeRTOS临界区里丢中断,但没实锤。 产线小批量30台已经焊完了,这问题不解决不敢出货,急。有没有老哥踩过这坑?是DMA配置问题还是RTOS那边的事?手册翻烂了也没看出门道,求个方向。

回答(0)

还没有回答,来抢沙发!