童雨竹
发表于 2025-10-2 07:31
串口接收数据丢包像漏了几拍的节奏
串口用DMA接收,发现长时间运行后数据会少几个字节,好像有人偷走了中间几拍。尝试过改环形缓冲区大小,问题缓解但没根治,感觉可能和DMA中断响应不及时有关。
Clyde011
发表于 2025-10-2 07:37
把DMA优先级调高点试试,可能能改善。
公羊子丹
发表于 2025-10-2 07:38
你开了空闲中断了吗?环形缓冲区必须配合这个用。
周半梅
发表于 2025-10-2 07:39
之前我遇到过,是因为波特率太高,MCU忙不过来。
帛灿灿
发表于 2025-10-2 07:39
看看是不是FIFO配置没开,L0系列有点坑。
童雨竹
发表于 2025-10-2 07:40
我怀疑是数据粘包导致你误以为丢字节。
万图
发表于 2025-10-2 07:41
DMA指针更新的时候是不是没及时清?
Wordsworth
发表于 2025-10-2 07:42
你能不能试试用双缓冲模式?这样不会断。
Bblythe
发表于 2025-10-2 07:43
我一般是加个协议层校验,这样能看出丢多少。
Pulitzer
发表于 2025-10-2 07:44
波特率和时钟不准也会有问题,尤其是内部RC。
Uriah
发表于 2025-10-2 07:45
如果是小文件多的话,FatFS目录操作会拖后腿。
maudlu
发表于 2025-10-2 22:08
有规律地、间歇性地丢失一帧或几帧数据?
tabmone
发表于 2025-10-4 09:38
如果数据流入速度超过缓冲区处理能力,未及时读取的数据会被覆盖,导致丢包。
eefas
发表于 2025-10-4 10:17
中断服务程序执行时间过长
biechedan
发表于 2025-10-4 10:59
避免数据覆盖。
mickit
发表于 2025-10-4 11:49
使用DMA
sesefadou
发表于 2025-10-4 12:32
配置USART空闲中断,检测帧结束。
claretttt
发表于 2025-10-4 13:22
接收缓冲区溢出
timfordlare
发表于 2025-10-4 14:07
处理速度跟不上接收速度
burgessmaggie
发表于 2025-10-4 14:51
确保串口中断能被及时响应。