yesful 发表于 2010-10-28 11:47:41

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]
查看完整版本: delphi中comport控件如何在OnRxChar外调用ReadStr函数?