A
apolloone
Unregistered / Unconfirmed
GUEST, unregistred user!
利用SPCOMM控件在接收到较长数据时出现通讯中断。
具体接收代码如下:
var
RBuf,SBuf:Array[1..16] Of Byte;
procedure TMainForm.RS232ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var I:Integer;
ViewString1:String;
begin
ViewString1:='';
Move(Buffer^,PChar(@RBuf)^,BufferLength); //运行到这就死掉了。
For I:=1 To BufferLength Do
ViewString1:=ViewString1+chr(RBuf)+'';
ShowMessage(ViewString1);
end;
但接收到长数据时(我测试的接收数据有72个字节),就在运行
Move(Buffer^,PChar(@RBuf)^,BufferLength); 这条语句时就死掉了。
是不是需要先清空缓存? 如何清空呢?
大家帮我想想办法!
谢谢!
具体接收代码如下:
var
RBuf,SBuf:Array[1..16] Of Byte;
procedure TMainForm.RS232ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var I:Integer;
ViewString1:String;
begin
ViewString1:='';
Move(Buffer^,PChar(@RBuf)^,BufferLength); //运行到这就死掉了。
For I:=1 To BufferLength Do
ViewString1:=ViewString1+chr(RBuf)+'';
ShowMessage(ViewString1);
end;
但接收到长数据时(我测试的接收数据有72个字节),就在运行
Move(Buffer^,PChar(@RBuf)^,BufferLength); 这条语句时就死掉了。
是不是需要先清空缓存? 如何清空呢?
大家帮我想想办法!
谢谢!