H
hn_chx
Unregistered / Unconfirmed
GUEST, unregistred user!
procedure myProcedure();
var
WaitTime1: TDateTime;
begin
WaitTime1:=Date+Time;
while ((Date+Time) < (WaitTime1+EncodeTime(0,0,0,500))) do
begin
Application.ProcessMessages;
if MainForm.MSComm.InBufferCount=52 then
begin
InputLen:=MainForm.MSComm.InBufferCount;
wendu_inputstring:=MainForm.MSComm.Input;//直接以ASCII码形式接收数据
string_dingwei:=pos('*',wendu_inputstring);//定位读入的字符串
break;
end;
end;
end;
这段代码的意思就是在500毫秒的时间内一直循环查看串口接收缓冲区里是否有收到52个字节的数据,如果有收到就把数据读取出来.
在循环里加上Application.ProcessMessages;可以使你的程序在采集数据时可以做其他操作(比如移动界面等),使程序看起来没有死的感觉.
var
WaitTime1: TDateTime;
begin
WaitTime1:=Date+Time;
while ((Date+Time) < (WaitTime1+EncodeTime(0,0,0,500))) do
begin
Application.ProcessMessages;
if MainForm.MSComm.InBufferCount=52 then
begin
InputLen:=MainForm.MSComm.InBufferCount;
wendu_inputstring:=MainForm.MSComm.Input;//直接以ASCII码形式接收数据
string_dingwei:=pos('*',wendu_inputstring);//定位读入的字符串
break;
end;
end;
end;
这段代码的意思就是在500毫秒的时间内一直循环查看串口接收缓冲区里是否有收到52个字节的数据,如果有收到就把数据读取出来.
在循环里加上Application.ProcessMessages;可以使你的程序在采集数据时可以做其他操作(比如移动界面等),使程序看起来没有死的感觉.