【问题标题】:Raising or lowering RTS on serial port (C++)提高或降低串行端口上的 RTS (C++)
【发布时间】:2010-02-22 10:53:09
【问题描述】:

我有一段代码可以读取串口 CTS 线的当前状态,然后应用程序根据那里的值进入适当的模式。

使用此处描述的零调制解调器电缆:

http://www.lammertbies.nl/comm/info/RS-232_null_modem.html#full

我可以检测到通过该零调制解调器电缆连接的其他端口上的 RTS 线路。

有没有程序化提高或降低 RTS 线的方法?

平台是 Win32、c++,但有关 RTS 线何时升高或降低的任何信息都会有所帮助。

【问题讨论】:

    标签: c++ winapi serial-port


    【解决方案1】:

    看看EscapeCommFunction

    EscapeCommFunction(hPort, SETRTS);
    

    必须禁用硬件握手,即在调用 SetCommState 时,dcb.fRtsControl 应设置为 RTS_CONTROL_HANDSHAKE 以外的其他值。

    【讨论】:

      【解决方案2】:

      此问题高度依赖于特定平台,而不仅仅是操作系统。如果RTS 线作为输出连接到机器,那么它可以被提升。

      最低级别的硬件必须提供对线路的访问。有些串口不允许软件访问这条线,而是通过硬件握手自动处理。

      操作系统必须允许用户应用程序访问此资源。在某些操作系统中,串口可能被限制为内核或超级用户权限。

      【讨论】:

        【解决方案3】:

        在 .Net 中,它是串行端口的 .RtsEnable 属性。

        【讨论】:

          猜你喜欢
          • 2019-01-25
          • 2020-11-19
          • 1970-01-01
          • 2014-05-27
          • 2013-03-24
          • 2019-05-21
          • 1970-01-01
          • 2018-04-23
          • 2015-08-21
          相关资源
          最近更新 更多