我用SPComm控件进行串口程序设计,要一次接收700多个字节的十六进制数据,奇怪的是用我的程序接收后,总少了一些字节(原数据流中的$11,或$11、$13),然后我再用串口调试助手(应该比较完善的软件)接收,结果是一样的。但当我重启计算机后,再用串口调试助手接收,则没有错误,请各位高人指点一下。
部分程序如下:
var
  rbuf:array[1..713] of byte;
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
  BufferLength: Word);
var
  i:integer;begin
  //viewstring:='';
  move(Buffer^,pchar(@rbuf)^,bufferlength); //把缓冲区中数据移到接收字节数组中  for i:=1 to bufferlength do      edit1.Text:=edit1.Text+inttohex(rbuf[i],2) ;
end;