以上是PC1与PC2之间通过全双工转半双工通信的电路连接图。
PC1的RTS设置为高电平,PC2的RTS设置为低电平时,即让PC1一直保持发送状态,PC2保持为接收状态,此时PC1发送的数据PC2能接收到。反过来PC2发送PC1接收也能成功。
但我测试第二个功能即:当PC1发送完数据后立即变为接收状态,PC2一直保持接收状态,当接收到数据后立即变为发送状态发送一帧信息给PC1。这时PC1接收不到PC2发送的数据。
请求高人指点问题出现在哪。
以上程序设计均在VC++环境下,采用MSComm控件控制串口通信。

解决方案 »

  1.   

    图片若看不到请链接下面的地址。
    图片地址
    http://photo.163.com/tao_online/big/#aid=205130660&id=6138774114
      

  2.   

    PC1的RTS设置为高电平是告诉PC2,它(PC1)要发送,能不能发送PC1要看CTS,反之也然。
    所以把PC1的RTS反相给PC2的CTS,把PC2的RTS反相给PC1的CTS。试试
      

  3.   

    3#是说把RTS和CTS配合使用用来做流量控制,但我的RTS只是单独拿出来控制三态门的选通,应该不需要理会CTS吧,况且我已经实现了PC1发送数据,PC2能收到
      

  4.   

    对啊,我不用CTS,只用RTS来选通三态门,当RTS为高电平时PC1发送数据,发送完数据后立即把RTS设置为低电平,保持接收状态。这样就不用检测CTS信号了,不是吗