给你个段延时程序,你可以试试,
procedure TimeDelay(DT: DWORD);
var
TT: DWORD;
begin
//取得现在的Tick值
TT := GetTickCount();
//计算Tick差值是否超过设置值
while GetTickCount()-TT<DT do
Application.ProcessMessages; //释放控制权
end;
to mymy
我正在做串口编程的项目,有机会我们可以互相学习一下,我直接用API,通讯部分用公司自己研发的转换卡。我的邮箱是mu_hx@126.com.
你的问题估计是延时不够,毕竟通讯受硬件的通讯线的影响,速度远小于CPU的处理速度。sleep(2)只是延时2毫秒,考虑到Delphi的线程运行机制,顶多是即使毫秒,我们的程序中动辄就延时几百毫秒。这种问题我以前也遇到,用延时解决,不知道有没有更好的方法。