我正试图在Windows应用程序控制的串行端口上设置载波检测(接收线路信号检测)引脚。我已经可以使用以下功能将RTS线设置为高:
EscapeCommFunction(handle, SETRTS);
然后使用清除
EscapeCommFunction(handle, CLRRTS);
我希望能够对CD行执行完全相同的操作,但EscapeCommFunction不存在这样的SET/CLR标志。
PC串行端口是从终端而非调制解调器的角度设计的。CD信号是来自调制解调器的输出和到终端的输入。即使端口硬件允许你改变方向(我对此持怀疑态度),标准接口也不会以这种方式编程。
RS232设备可以是DTE(数据终端设备)或DCE(数据通信设备)。DCE的例子有调制解调器、多路复用器和一些线路驱动器(从技术上讲是调制解调器),包括计算机在内的所有其他设备都是DTE。
DCD(RLSD)是DCE的输出,用于指示已检测到通信链路上的载波,即可以看到远程调制解调器。
我不知道如何将DTE转换为具有标准串行端口的DCE。