童雨竹 发表于 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

确保串口中断能被及时响应。            
页: [1] 2
查看完整版本: 串口接收数据丢包像漏了几拍的节奏