低级串行配置?

低级串行配置?

我使用的是嵌入式Linux平台,内核是2.6。我正在使用 stty 命令来配置 ttyS* 高级。问题是当我想打开硬件流控制时:

stty -F /dev/ttySA0 crtscts

它无法与其他设备通信(也启用了流量控制 - 已选中)。我发现在 /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

而在具有相同硬件的其他平台上(以及硬件流控制工作的地方),有类似的内容:

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

所以区别在于“CTS|DSR|CD|RI”与“DSR|CD|RI”。这个“DSR|CD|RI”可能是我无法使用硬件流控制的问题吗?

答案1

有两个可能的问题:

一是电缆不正确。如果没有正确传递硬件流控制信号,硬件流控制将不起作用。

另一种是软件一端或另一端配置错误。应在两端的软件中启用硬件流控制。并且两端的软件必须打开各自的端口。

相关内容