串口接收的问题
串口接收数据的时候,为什么我每改变一次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;