定时器20毫秒运行一次,单字符读取,如果读取到就保存到全局变量receData中,否则就输出到文本框中,并重置receData。
优点:单字符读取,解决了按长度读取的弊端,如果按长度读取,很多时候并不知道究竟要读取多长,有的时候能读取完整,有的时候只读取了部分。
procedure TfrmLC.tmrReceDataTimer(Sender: TObject);
var
ch: Longint;
begin
if (not booOpenSP) then
begin
Exit;
end;
ch := sio_getch(spPort);
if (ch >= 0) then
begin
receData := receData + IntToHex(ch, 2) + ' ';
end
else
begin
if (receData <> '') then
begin
mmoMsg.Lines.Add('收<--:' + receData);
receData := '';
end;
end;
end;
标签:begin,定时器,读取,ch,delphi,receData,串口 From: https://www.cnblogs.com/huiy/p/18256137