RS232中使用DTR(Date Terminal Ready,数据终端准备)与DSR(Data Set Ready ,数据设备准备好)进行主流控,类似上述的RTS 与CTS 。对半双工的通信的DTE(Date Terminal Equipment,数据终端设备)与DCE(Data circuit Equipment )来说,默认的方向是DTE接收,DCE发送。如果DTE要发送数据,必须发出RTS 信号,请求发送数据。DCE收到后如果 空闲则发出CTS 回 应RTS 信 号,表示响应请求,这样通信方向就变为DTE->TCE,同时RTS 与CTS 信号必须一直保持。从这里可以看出,CTS ,TRS虽 然也有点流控的意思(如CTS 没有发出,DTE也不能发送数据),但主要是用来进行方向切换的。 如果UART只有RX、TX两个信号,要流控的话只能是软流控;如果有RX,TX,CTS ,RTS 四个信号,则是支持硬流控的UART;以上问题分析是硬件与软件都支持数据流时,软件是不需要选择的,如果硬件不支持数据流或者软件不支持,那就需要选择RTS和DTR控制位,来实现数据流的控制。一般来说是硬件不同引起的。 |
RTS和DTR操作这是上位机软件编程问题,单片机串口没有用RTS和DTR控制线,你提到软件一个由人工选择RTS和DTR打开,一个默认全打开,单片机串口只要能通信不要纠结上位机编程如何搞的,除非你要学习上位机编程。
![]() |
RTS和DTR这两个信号线是给慢速设备使用的,对于单片机和PC,单片机和单片机之间通信,是可以不用的。对你的问题,在保证硬件连接正常下,仔细检查软件。 |
你的图看不到。。。 |