在做读取com口时总是遇到各种各样的问题,以至于取不到想要的数据格式,于是被逼无奈下想到如下方法,就是添加一个Timer控件。
代码如下:
procedure TForm1.MSComm1Comm(Sender: TObject);
var
str,str1:string;
begin
str:=Trim(Mscomm1.Input);
Newstr:=NewStr+Str;
Timer1.Enabled:=true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if (Mscomm1.InputLen=0) and (Newstr<>'') then begin
Memo1.Lines.Add(NewStr);
Newstr:='';
Timer1.Enabled:=false;
end;
end;
代码如下:
procedure TForm1.MSComm1Comm(Sender: TObject);
var
str,str1:string;
begin
str:=Trim(Mscomm1.Input);
Newstr:=NewStr+Str;
Timer1.Enabled:=true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if (Mscomm1.InputLen=0) and (Newstr<>'') then begin
Memo1.Lines.Add(NewStr);
Newstr:='';
Timer1.Enabled:=false;
end;
end;
本文介绍了一种通过添加Timer控件来优化串行通信(COM口)数据读取的方法,确保能完整获取到所需的数据包,避免因数据接收不完整导致的问题。
981

被折叠的 条评论
为什么被折叠?



