[其他芯片]

CH579串口传输文件丢数据如何处理?

[复制链接]
1575|40
手机看帖
扫描二维码
随时随地手机跟帖
归依龙井|  楼主 | 2023-8-31 09:51 | 显示全部楼层 |阅读模式
CH579M串口1接收数据大于200K的时候会出现丢数据的情况(我是直接用官方的串口例程,接收到数据立马发送出去)但现在上位机接收到的数据和发送的文件大小差100Byte左右,这个串口又没法用RTS流控,请问有什么好的解决思路吗?

使用特权

评论回复
JayWell| | 2023-8-31 17:59 | 显示全部楼层
先关闭打印,打印需要耗时;使用环形缓冲区先行缓存数据,可以参考CH573EVT中的BLE_UART代码编写环形缓存。CH579的串口0才有流控,也可以考虑更换串口。

使用特权

评论回复
wangpe| | 2023-8-31 19:30 | 显示全部楼层
更换串口吧

使用特权

评论回复
tpgf| | 2023-9-6 13:35 | 显示全部楼层
数据的丢失有规律性吗 还是随机的啊

使用特权

评论回复
qcliu| | 2023-9-6 14:13 | 显示全部楼层
是否可以考虑使用双缓冲机制呢

使用特权

评论回复
drer| | 2023-9-6 15:02 | 显示全部楼层
你这个数据差的真的有点多 是使用什么方式进行数据接收的呢

使用特权

评论回复
wiba| | 2023-9-6 19:42 | 显示全部楼层
在接收和发送之间设置一下延时时间

使用特权

评论回复
kxsi| | 2023-9-6 20:11 | 显示全部楼层
可以自己定义通讯内容 设定包头包尾来确定是否接收完成

使用特权

评论回复
coshi| | 2023-9-6 20:50 | 显示全部楼层
楼主的串口传输是单双工的吧 这样会不会产生冲突呢

使用特权

评论回复
chenjun89| | 2023-9-6 21:21 | 显示全部楼层
和流控没关系,应该还是和你软件接收数据处理有关。

使用特权

评论回复
chenqianqian| | 2023-9-7 08:20 | 显示全部楼层
这个是随机的吗?还是固定现象。

使用特权

评论回复
mnynt121| | 2023-9-7 16:39 | 显示全部楼层
将两台PC间波特率设置为一样的大小。

使用特权

评论回复
wangdezhi| | 2023-9-7 16:43 | 显示全部楼层
可以考虑使用其他串口通信芯片或者调整通信协议

使用特权

评论回复
hudi008| | 2023-9-7 16:53 | 显示全部楼层
增加停止位的数量,例如从1位增加到2位,可以提供更多的时间给接收端进行数据的采样和处理,以减少数据丢失的风险。

使用特权

评论回复
robincotton| | 2023-9-7 17:00 | 显示全部楼层
发送和接收端都采用合适的校验方式,如奇偶校验、CRC校验

使用特权

评论回复
uytyu| | 2023-9-7 17:13 | 显示全部楼层
提高应用程序和驱动程序的优先级,以增加对数据的接收和处理速度。

使用特权

评论回复
belindagraham| | 2023-9-7 17:16 | 显示全部楼层
可以检查波特率设置是否正确              

使用特权

评论回复
earlmax| | 2023-9-7 17:23 | 显示全部楼层
将串口中断优先级设为最高。              

使用特权

评论回复
zerorobert| | 2023-9-9 16:46 | 显示全部楼层
降低串口的波特率              

使用特权

评论回复
claretttt| | 2023-9-9 17:05 | 显示全部楼层
在接收端,可以设置合适的接收缓冲区大小。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

15

帖子

0

粉丝