[其他芯片] CH579串口传输文件丢数据如何处理?

[复制链接]
6550|53
backlugin 发表于 2023-9-9 17:17 | 显示全部楼层
通过降低波特率,可以增加每个数据位的传输时间,提高数据的可靠性。
elsaflower 发表于 2023-9-9 17:29 | 显示全部楼层
将大文件分成多个小包进行传输,并在接收端确认每个包是否成功接收
janewood 发表于 2023-9-9 17:37 | 显示全部楼层
确保串口传输的物理连接准确可靠。检查线缆、连接头、电气信号等,确保没有松动、接触不良等问题。
usysm 发表于 2023-9-9 17:46 | 显示全部楼层
如果数据量大,UART接收中断函数耗时、优先级低等情况下容易丢失数据。这可以通过减少不必要的耗时,合理分配中断优先级,以及在中断前清除标志位等方法解决。
51xlf 发表于 2023-9-9 17:56 | 显示全部楼层
如果数据传输速度较快,接收缓冲区容量较小可能无法及时接收全部数据导致丢失。增加缓冲区的容量可以一定程度上解决问题。
10299823 发表于 2023-9-9 18:04 | 显示全部楼层
在接收大量数据时,UART接收中断函数可能会耗时,导致数据丢失。为了解决这个问题,可以合理分配中断优先级,确保接收中断能够及时处理。
febgxu 发表于 2023-9-9 18:13 | 显示全部楼层
通信线受到干扰或接触不良              
wilhelmina2 发表于 2023-9-9 18:22 | 显示全部楼层
建议启用硬件流控制机制。              
timfordlare 发表于 2023-9-9 18:31 | 显示全部楼层
降低串口的波特率可以减少数据传输速度,从而减小数据丢失的可能性
sanfuzi 发表于 2023-9-9 18:39 | 显示全部楼层
:使用UART中断接收数据相比查询接收数据的方式更常见
ccook11 发表于 2023-9-9 18:53 | 显示全部楼层
在串口传输中,可以使用校验位来验证数据的完整性
robincotton 发表于 2023-9-9 19:03 | 显示全部楼层
如果接收缓存区不足,可能会导致数据丢失的情况。可以增加接收缓存区的大小
mickit 发表于 2023-9-9 19:11 | 显示全部楼层
通过调试工具和日志记录来跟踪问题,并定位可能出现数据丢失的原因
bestwell 发表于 2023-9-9 19:19 | 显示全部楼层
可以考虑使用可靠的传输协议,如XMODEM、YMODEM或ZMODEM
2539752622 发表于 2023-9-11 16:43 | 显示全部楼层
理论上不会丢包,丢包主要是发包太快,mcu处理不及,导致丢包。
所以一般使用缓冲区,发包太快也有一个缓冲的余地,但是会消耗RAM。如果大数据量估计RAM就不够了。
还有一种就是流控,配套上位机,MCU说上位机发,那上位机就发;MCU说等会我处理不过来了,那就叫上位机等等再发了。
天天向善 发表于 2023-11-6 10:39 | 显示全部楼层
进步应用程序以及驱动程序的优先级,以增长对于数据的接管以及处理速度。
LinkMe 发表于 2023-11-6 12:38 | 显示全部楼层
这是随机的还是固定的现象?
AIsignel 发表于 2023-11-14 16:58 | 显示全部楼层
楼主的串口传输是单双工的,对吗?
jcky001 发表于 2023-11-15 14:31 | 显示全部楼层
调整接收线程优先级
cr315 发表于 2023-11-15 14:32 | 显示全部楼层
设置串口控制器的接收中断模式和FIFO的trigger level值
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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