我有一段代码可以读取串口CTS线的当前状态,然后应用程序进入适当的模式基于那里的值。
使用此处描述的零调制解调器电缆:
http://www.lammertbies.nl/comm/info/RS-232_null_modem.html#full
我可以检测通过该零调制解调器电缆连接的其他端口上的RTS线路。
有没有一种方法可以提高或降低RTS线?
平台是Win32,c ++,但有关何时提升或降低RTS行的任何信息都会有所帮助。
答案 0 :(得分:7)
EscapeCommFunction(hPort, SETRTS);
必须禁用硬件握手,即调用SetCommState
时dcb.fRtsControl
应设置为RTS_CONTROL_HANDSHAKE
以外的其他内容。
答案 1 :(得分:1)
此问题高度依赖于特定平台,而不仅仅是操作系统。如果RTS
行作为输出连接到机器,则可以引发它。
最低级别的硬件必须提供对该线路的访问。某些串行接口不允许软件访问此行,但通过H / W握手自动处理。
操作系统必须允许访问此资源到用户应用程序。在某些操作系统中,串行端口可能被限制为内核或超级用户权限。
答案 2 :(得分:1)
在.Net中,它是serialport的.RtsEnable属性。