求教各位,先描述一下我的现象:
我的程序是用delphi写的,通过spcomm组件来实现对下位机通信.设计期操作如下:
1.设置:BaudRate:115200 CommName:COM1  ByteSize:_8  Parity:None  StopBits:_1 这是按照说明上设的.说明上还有一句是:No Flow Conctrol 我不知应该设那个属性,就让它为默认的了.
2.主界面上有三个按钮功能如下:
  btn1:startcomm
  btn2:发送命令A;
  btn3:发送命令B;
  btn4:stopcomm
 运行后执行:
  1.点击btn1->点击btn2:执行命令A,结果正确.
  2.接着1点击btn3:预计执行命令B,但是没有达到预期结果.使用串口检测设备并联到RS-232线路上.发现此时没有任何消息发送出来.
  3.此时接2再点击btn4->btn1->btn3:执行命令B.显示结果正确.
  4.接3点击btn2 :预计执行命令A,但同样没有任何显示.
总结上面操作得出现象结论:每次要发送一个命令之前必须重新打开一次串口,才能成功发送命令.那位能告诉我这是为什么?非常着急.谢谢大家!

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/4855/4855627.xml?temp=.4934809 另开帖地址.谢谢
      

  2.   

    记得要清缓冲数据区
    我在VC里是这么做的 PurgeComm(hComm, PURGE_RXCLEAR);
      

  3.   

    No Flow Conctrol : 无流控. 
    把spcomm的属性中所有为true的 改成false;
      

  4.   

    两个地方需要把属性设置Outx_CtsFlow、Outx_DsrFlow设为false就可以了,ReadIntervalTimeout设的稍微长点,比如100,其他默认。