大家好:
     我用Spcomm控件编写了一个串口通讯程序,作用是:把从串口接受的数据用
     “十六进制”字符来显示,我在Spcomm的数据接受事件里写了如下的代码:
     (用Delphi写的).
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
  BufferLength: Word);
var
  i:integer;
  wchb:string;
  tmparray:array[0..5000] of byte;
begin
  wchb:='';
  move(buffer^,pchar((@tmparray)^),bufferlength+2);
  for i:=0 to bufferlength-1 do
    begin
      wchb:=wchb+inttohex(tmparray[i],2);
    end;
  memo1.Lines.Add(wchb);
end;
我的问题如下:    我通过COMM1串口接受别人给我发的数据,别人给我发的数据是这样子的:
列如:“00AA0EAA00AA11AA5EAA73AAB4”,“00AA0EAA00AA11AA60AAE1AAF6”,
      “00AA0EAA00AA11AA8AAA8FAA56”,“00AA0EAA00AA11AA68AA80AAA4”
每次别人给我发其中上面其中的一组数据,我用上面编写的代码进行“十六进制”
字符接受,例如接受别人发的“00AA0EAA00AA11AA8AAA8FAA56”时,只能显示
“00AA0EAA00AAAA8AAA8FAA56” 其中的两个连续的“11”不能显示出来,即接受不
到完整的“00AA0EAA00AA11AA8AAA8FAA56”只能接受到“00AA0EAA00AAAA8AAA8FAA56”.还有出错提示“访问什么地址出现异常”之类的提示。请问大家:为什么两个连续的“11”不能正常的接受呢?我的代码有错吗?
         拜托大家给俺一点意见好吗?