[RTOS] 在RTT下,AT32F437串口丢数据

[复制链接]
2060|14
 楼主| hj19910310 发表于 2022-10-21 16:33 | 显示全部楼层 |阅读模式
如下图所示,串口助手循环发送,间隔时间100ms,会不定时的丢1字节数据。串口配置为115200,串口RB设置为4096,中断接收,轮询发送。
348776352588fa77b1.png

sheltonyu 发表于 2022-10-24 10:58 来自手机 | 显示全部楼层
您好,在我的环境下没能复现出您的问题现象。
前不久对串口驱动中的中断接收处理部分有提交过一点更新,您可更新仓库或自行修改试试看。改动点如下图,屏蔽掉如图鼠标所示语句即可:
IMG_20221024_105704.jpg
Pretext 发表于 2022-11-1 17:24 | 显示全部楼层
这种问题不好找,可以先裸机跑一跑。
Pretext 发表于 2022-11-1 17:25 | 显示全部楼层
裸机跑的没问题,那大概率就是RTT的问题了。如果是RTT的问题,更新一下RTT版本试试。
朝生 发表于 2022-11-1 17:26 | 显示全部楼层
串口是挺常用的通信了,不应该有这种问题,是不是线虚的问题?
rlyabc 发表于 2022-11-2 17:13 | 显示全部楼层
我也遇到这个问题,我使用的是RT-THREAD studio  系统使用的是4.1版本的,芯片使用的是AT32F437VMT7,实际测试时钟频率再108Mhz以上时,基本没有丢字节的情况,在时钟在108MHz,或者低于108Mhz时,丢的越频繁。目前没有找到问题,暂且将时钟频率调高使用。
V853 发表于 2022-11-5 10:17 | 显示全部楼层
rlyabc 发表于 2022-11-2 17:13
我也遇到这个问题,我使用的是RT-THREAD studio  系统使用的是4.1版本的,芯片使用的是AT32F437VMT7,实际测 ...

这种情况有可能时钟频率不稳定导致的?
tpgf 发表于 2022-11-7 14:58 | 显示全部楼层
降低115200搭配9600试试看还会不会丢数据呢
八层楼 发表于 2022-11-7 15:14 | 显示全部楼层
首选排除串口调试助手本身的问题 因为有可能是数据源头出现了问题
观海 发表于 2022-11-7 15:23 | 显示全部楼层
丢掉的数据的位置是固定的吗 还是一个随机数据呢
guanjiaer 发表于 2022-11-7 15:52 | 显示全部楼层
100ms的时间间隔足够了 只不顾每包发送的数据是不是过大呢
heimaojingzhang 发表于 2022-11-7 16:02 | 显示全部楼层
楼主是使用的轮询接收模式还是中断接收模式呀
keaibukelian 发表于 2022-11-7 16:12 | 显示全部楼层
实际使用的主频配置为多少了  会不会因为主频过高导致丢失数据呢
aple0807 发表于 2022-11-9 18:23 | 显示全部楼层
中断优先级设置高一点
linjinming2000 发表于 2022-11-10 23:38 | 显示全部楼层
如果你的中断优先级不是最高的话可能会丢数据,这个时候会发生过载错误,你可以debug看是否进入错误中断,串口通信最好采用DMA方式,DMA设置为循环方式,在定时器中断里面判断DMA传输数量是否变化,如果有变化说明有数据接收,然后启动超时判断,超时结束时那么就接收完成了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我相信,只要坚持就会有成绩!

3

主题

11

帖子

0

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