高速串口数据采集,采集频率为2KHz时,开始几分钟正常,但随后发现读取的21字节就不对了请问这是为什么?

2019-07-17 11:24发布

本帖最后由 一只耳朵怪 于 2018-6-21 16:20 编辑

我在做一个高速采集系统,遇到了如下问题:

串口采集,每帧数据21字节,串口每次读取21字节,然后解析数据并显示保存,在低速时,比如采集频率为100Hz,连续测试几天,没有出现问题。但是在高速时,比如采集频率为2KHz时,开始几分钟正常,但随后发现读取的21字节就不对了,帧头移位,发生了错位(可能是串口传输时,有一帧数据丢失了一个),以后每次读取的21字节数据都发生了移位。求大神给点指导意见。


我的想法是这样的,把串口读取的数据不断装入一个“管子”里,在管子的出口处朝着入口方向开始查找帧头,找到之后把帧头以后的X字节数据(数据长度正常是21字节,但如果发生异常,也可能是20字节或22字节)取出来,管子内剩下的数据统一朝管子出口方向移动X位,如此反复,这样就可以避免某一帧数据丢失一位或增加一位的影响,大不了把这一帧数据扔掉。



但是不知道如何实现这个想法。跪求大神指导。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。