delphi中comport控件如何在OnRxChar外调用ReadStr函数?
我在OnRxChar函数里调用ReadStr可以接收到数据,但在OnRxChar之外调用ReadStr时,接收不到数据。我本意是想由Delphi用Comport控件实现modbus协议通信,由上位机软件往单片机发送指令后,等待单片机返回数据,但是不成功(指令发送成功,并且在232转485转接器上显示有数所返回)请大家指导。疑问:comport控件如何在onRXchar外调用readstr函数。
如何给其设计超时处理,我如下处理是否正确?i从0加到30000耗时多长?我运行时,点击发送数据后,一下就出现‘接收超时’提示了
代码如下:
SendString(hexstrToStr(str));//发送指令
//接收数据
i := 0;
repeat
Application.ProcessMessages;
ComPort.ReadStr(RXStr,Count);
i := i + 1;
If i > 30000 Then
begin
showmessage('接收超时!');
break;
end;
Until Count=8;
if not CRCCheck(RXStr) then
showmessage ('接收数据错误!')
else
begin
edAdd.Text :=RXStr;
end;
页:
[1]