关于spcomm控件的问题?很奇怪的问题,不知大家碰到过没有。 (100分)

D

darkor

Unregistered / Unconfirmed
GUEST, unregistred user!
我写以前写串口的程序,都是用的是spcomm。一点问题都没有。现在正在做的一个程序也用的
是spcomm。却出现了意想不到的问题。
应该说是丢数据的问题。而且丢的都是同一个地方。
下面是正确的数据:
....10 00 00 00 00 CD 11 00 00 00 00 AF 12 00 00 00 00 09 13 00 00 00 00 6B 14 00 00 00 00 42 ....
通过spcomm写的程序收到的是:
....10 00 00 00 00 CD 00 00 00 00 AF 12 00 00 00 00 09 00 00 00 00 6B 14 00 00 00 00 42....
把11和13丢了。我原以为是设备的问题,后来发现用别的就可以正确接收。而且同时还有别的数据上传,一点
问题都没有,就是这条数据有问题!
困惑中.....
那位高手能指点一二?

接收部分的程序是:
procedure TMainForm.RECommReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
RecString:string;
i:integer;
begin
Move(Buffer^,pchar(@Rec_Buffer_Array)^, bufferlength);
for i:=0 to bufferlength-1 do
begin
recstring:=recstring+intToHex((Rec_Buffer_Array),2)+' ';
end;
recstring:='接收:'+recstring;
Memo1.Lines.Add(recstring);
Memo1.Lines.Add(' ');
if memo1.Lines.Count >5000 then
memo1.Clear ;
end;
 
你好像用了软件流控吧?
对应的字符
$11=#17
$13=#19
 
你可以将spcomm的outx_xonxoffFlow属性设为false
 
tjcjh是对的。
我后来试着调整spcomm的属性,就解决了。
害我着急了半天。
 
顶部