先谢谢楼上的这位朋友,分析的很全面
我确定是中间的数据丢失,我估计很大原因就是接收和写保护偏差问题。 刚才用串口调试攻击分别以10ms 100ms 1000ms 的速率发送一整行数据(保证有0x0D 0x0A)(一行是20字节), 结果统计的发送字节跟实际保存到文件的字节数如下:
发送间隔时间 实际保存字节数 串口工具发送字节数
1000ms 7620Bytes 7800Bytes
100ms 28240 28680
10ms 26860 32920
发现10ms的时候,里面的文件记录直接就乱了,本来应该是整齐的很多行业数据,因为中间丢包导致数据比较乱, 而且看实际保存字节数跟 串口发送字节数 差别也很明显。
串口是9600波特率的, 存储时用SDIO 往TF卡里存储的。 程序上采用双buf。 不知道问题出在什么地方, 还是本身TF卡存储就到不了接收9600波特率 10m间隔发送的这么一种速率呢。
|