VB串口编程数据采集如何确定头和尾

来源:百度知道 编辑:UC知道 时间:2024/05/09 04:46:26
我用VB的MSComm控件进行串口通信,使用.input采集数据,inputLen=0,例如,从A电脑采集B电脑的数据,B发送数据1234,我发现数据在串口缓冲区内是不断累积的,12341234……,请问,如何保证接受1234,而不是2341或3412或4123,这只是举个简单的例子,实际上要发送的数据含字母、数字和标点符号,不定长,无协议。

这个是难以解决的,
绝大多数的是靠数据头、数据尾制约的
比如先发送00H表示数据头发送01H表示数据尾。
第一次接受时读到00H开始累加,以前的丢弃,直到01H结束
...
还有是发送数据头+长度+内容的方式
00H,01H(数据头)
23H(长度)
data

另外的是有风险的,是发送端定时发送,就是读取端设定超时,如果XXX时间没有数据,就证明数据读取完毕。

其他的还有互动方式、定长方式、主动获取方式等等。