串口中断接收如何判断数组接收完毕呢?

2019-08-18 21:22发布

串口中断接收如何判断数组接收完毕呢?开发板上的例程是是判断最后2个字节是0x0A,0x0D, 而我接收到得数据最后2位就是实际的数值。0x00 ,0x23, 或者0x00 ,0x37 这样不确定的数值,怎么判断数组接收结束了?是最后一个接收到的是'' 吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
esteem
1楼-- · 2019-08-18 22:58
 精彩回答 2  元偷偷看……
esteem
2楼-- · 2019-08-19 01:31
有没有大侠告诉我,我用串口类接收了一个仪器传输过来的数据。但是数据没有结束标志。我把数据接收过来放在一个LISTBox里显示出来了,当数据传输完成后我想给一个提示框“MessageBox("数据接收完毕");”,但是我不知道怎么在程序里判断接收结束了,然后给提示框。
我发现我真是很白,都有些无地自容了。
esteem
3楼-- · 2019-08-19 04:15
串口的收发是建立连接后就可以不停得发送和监听接收的数据的,接收到的数据字段长度为0就表示目前没有数据发送过来,就是上一次数据已经发送完了。

最好的方法还是自己在发送数据的时候在结尾加个结束标致,这样,读的时候就可以判断数据是否接收完整还是丢失了。

你可以判断最后数据接收之后的一个时间长短来判定上一个指令是否发送完成,
不过这样也算不上准确,
最好是双方有协商一致的指令才可能准确判断是不是发送完毕,
比如有结束标志,或者知道某个指令的固定长度等。
esteem
4楼-- · 2019-08-19 08:39
通常在定义数据结构的时候在每个数据包前加入当前数据包的字节长度,或者定义一个结束符,两种方式都可以。如果数据包由专有硬件设备返回,那就必须清楚它返回的指令或数据含义,通常有技术资料可查的。
mygod
5楼-- · 2019-08-19 09:26
我的方法,开个定时器分 2次 去扫描 判断 当前数据有没变化;
hkys_lxh
6楼-- · 2019-08-19 15:00
 精彩回答 2  元偷偷看……

一周热门 更多>