[STM32L0] 多任务调度下串口偶尔输出断断续续的情况

[复制链接]
258|10
童雨竹 发表于 2025-11-14 07:18 | 显示全部楼层 |阅读模式
串口在系统忙的时候偶尔像在犹豫一样,一小段数据会推迟或缺几个字节。DMA 方式也试过,还是偶尔会见到。怀疑是任务调度让 CPU 抽不开身,但不确定是不是核心原因。
Clyde011 发表于 2025-11-14 07:23 | 显示全部楼层
串口驱动里如果有临界区,可能锁得太久,也会让数据断续。
公羊子丹 发表于 2025-11-14 07:24 | 显示全部楼层
我做过 FreeRTOS 下的 UART,其实优先级如果没处理好就会出现这种断点。
周半梅 发表于 2025-11-14 07:25 | 显示全部楼层
你试试 DMA 循环模式,我之前固定模式容易丢头丢尾。
帛灿灿 发表于 2025-11-14 07:26 | 显示全部楼层
如果你开了太多 printf,会让串口堵一会儿,尤其主循环很忙时。
 楼主| 童雨竹 发表于 2025-11-14 07:27 | 显示全部楼层
你检查下缓冲区大小,我以前太小直接塞满导致打断。
万图 发表于 2025-11-14 07:28 | 显示全部楼层
也可能是 DMA 中断被别的长中断阻塞了,你可以统计中断时间看看。
Wordsworth 发表于 2025-11-14 07:29 | 显示全部楼层
我曾经因为波特率太高导致边沿失真,你可以换低一点试试。
Bblythe 发表于 2025-11-14 07:30 | 显示全部楼层
任务调度确实可能影响,给串口任务加点 buffer 会好不少。
Pulitzer 发表于 2025-11-14 07:31 | 显示全部楼层
你试过关掉其他重负载任务吗?排除干扰最有效。
Uriah 发表于 2025-11-14 07:32 | 显示全部楼层
我遇到的情况是 TX 完成标志没及时清,导致下一包延迟。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

203

主题

6608

帖子

2

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