Delphi7 SPCOMM 串口接收数据问题!
delphi吧
全部回复
仅看楼主
level 6
kakeru0o0 楼主
代码如下
procedure TFrmMain.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
tsre,str:String;
begin
SetLength(Str,BufferLength);
move(buffer^,pchar(@Str[1])^,bufferlength); //从缓冲区将数据拷贝出来
................对数据做处理..................
我接收到一条数据后就打印在memo中
[接收14:46:58--113 22 01 08 00 57 ] //这是正常
[接收14:46:58--328 22 01 09 00 57 22 01 0A 00 F1 22 01 0B 00 93] //这有问题,里面有三条命令
[接收14:46:58--437 22 01 0C 00 57 22 01 0D 00 F1 ] //有两条命令
..................
这问题怎么回事啊!有时一次打印多条命令出来,而不是一条一条
是不是发送太快我接收反应不过来,还是怎么回事啊!
要是接收反应有问题!该怎么解决啊
麻烦大家了!谢谢
2015年04月14日 09点04分 1
level 1
处理程序对这个进行一下处理就可以了,因为串口默认100ms为一个包,所以会有这种现象。
2015年12月13日 14点12分 2
level 9
发送方不能保证串口数据是有规律的一串一串的间隔发送的话,最好是自己另开个缓冲区,做个函数从缓冲区里搜索有效命令,同时按照一定策略丢弃没用数据。否则会什么特殊情况都能给你弄出来的。
2015年12月19日 13点12分 4
level 1
做一个校验 延迟100ms
2015年12月26日 12点12分 5
1