我的代码过程是:
1。将串口的RTS置成高电平 并延时
2。发送一个字符‘a’
3。接收outbuffer清空消息,当收到此消息 TxEmpty 后将 RTS置成低电平但是问题出现了:
在串口的测试仪器“数字示波器”中捕捉到的波形显示 :
RTS置成高电平 延时 RTS置成低电平 发送字符波形。是否WINDOWS 给出的 outbuffer清空消息 和 实际串口发送数据在时间上不符合呢?
还是有其他原因呢。
请高手指点。注:串口在发送一批数据后会发出 OnTxEmpty 消息 。

解决方案 »

  1.   

    取消RTS握手,就是将xoffRTS值为true
      

  2.   

    我的程序和一硬件设备通讯,RTS 的设置 是通讯协议的一部分,RTS 由 应用程序来控制,
    而且串口的各项设置 都置为应用程序控制,流控制为 ‘无’
      

  3.   

    我想是否是 系统串口功能的BUG 呢 ?
      

  4.   

    发送完成其实有两种状况,
    (1)发送缓冲器空,即程序可以向串口(其实是发送缓冲器)发送下一字节,但此时上一字节正在发送过程中。
    (2)发送器空,即发送真正完成,且发送缓冲器中没有可发送字节。看看你 OnTxEmpty 是哪一种情况