[STM32L0] 串口接收数据丢包像漏了几拍的节奏

[复制链接]
268|14
童雨竹 发表于 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 | 显示全部楼层
避免数据覆盖。              
您需要登录后才可以回帖 登录 | 注册

本版积分规则

171

主题

6217

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部