提高或降低串口RTS(C ++)

时间:2010-02-22 10:53:09

标签: c++ winapi serial-port

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

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

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

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

有没有一种方法可以提高或降低RTS线?

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

3 个答案:

答案 0 :(得分:7)

看看EscapeCommFunction

EscapeCommFunction(hPort, SETRTS);

必须禁用硬件握手,即调用SetCommStatedcb.fRtsControl应设置为RTS_CONTROL_HANDSHAKE以外的其他内容。

答案 1 :(得分:1)

此问题高度依赖于特定平台,而不仅仅是操作系统。如果RTS行作为输出连接到机器,则可以引发它。

最低级别的硬件必须提供对该线路的访问。某些串行接口不允许软件访问此行,但通过H / W握手自动处理。

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

答案 2 :(得分:1)

在.Net中,它是serialport的.RtsEnable属性。