我使用的是嵌入式 Linux 平台,内核是 2.6。我正在使用 stty 命令来配置 ttyS* 高级别的。问题是当我想打开硬件流控制时:
stty -F /dev/ttySA0 crtscts
Run Code Online (Sandbox Code Playgroud)
它无法与其他设备通信(也启用了流量控制 - 已选中)。我发现在 /proc/tty/driver/sc16is7x2(这是串行设备)中有:
serinfo:1.0 driver revision:
0: uart:sc16is752 port:00000001 irq:53 tx:155 rx:0 DSR|CD|RI
1: uart:sc16is752 port:00000002 irq:53 tx:10 rx:0 DSR|CD|RI
Run Code Online (Sandbox Code Playgroud)
而在具有相同硬件(以及硬件流控制工作的地方)的另一个平台上,有类似的东西:
serinfo:1.0 driver revision:
0: uart:sc16is752 port:00000001 irq:53 tx:155 rx:0 CTS|DSR|CD|RI
1: uart:sc16is752 port:00000002 irq:53 tx:10 rx:0 CTS|DSR|CD|RI
Run Code Online (Sandbox Code Playgroud)
所以区别在于“CTS|DSR|CD|RI”与“DSR|CD|RI”。这个“DSR|CD|RI”会不会是我无法使用硬件流控制的问题?