串口接收数据的时候,为什么我每改变一次RThreshold的值,收到的数据都不一样,同时在RThreshold不变的情况下将memo1.Lines.Add(str)换成memo1.text:=memo1.text+str后收到的数据又不一样
   请问这是怎么回事,哪位高手指点一下?procedure TForm1.FormCreate(Sender: TObject);
begin
  memo1.clear;
  MSComm1.CommPort := 1;            
  MSComm1.Settings := '9600,n,8,1';
  MSComm1.InputLen := 0;           
  MSComm1.InBufferCount := 0;      
  MSComm1.RThreshold := 16;     
  MSComm1.InputMode := comInputModeBinary;
if MSComm1.PortOpen  then
 begin
   MSComm1.PortOpen:= false;      
   MSComm1.PortOpen := true;     
 end  else
 begin
   mscomm1.PortOpen:=true;
   mscomm1.DTREnable:=true;
   mscomm1.RTSEnable:=true;
 end;
  end;procedure TForm1.MSComm1Comm(Sender: TObject);
var
 recstr: Olevariant;
 i:integer;
 str:string;
begin
str:='';
if mscomm1.CommEvent=ComEvReceive then
 begin
  recstr:=mscomm1.Input;
  for i:=0 to mscomm1.RThreshold-1 do
   str:=str+inttohex(recstr[i],2)+' ';
 end;
memo1.Lines.Add(str);
end;