delphi:利用定时器读取串口返回数据
定时器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;
若是本人原创文章,请标明:本文来自博客园,作者:huiy_小溪,转载请注明原文链接:https://www.cnblogs.com/huiy/p/18256137。
反之,请标明原创作者,文章链接,所属平台。