我有一个 UART,其 RTS 引脚连接到外部 RS485 收发器,因此断言 RTS 引脚会将收发器设置为发送模式。我认为我可以将串行端口配置为使用 RTS 信号,从而无需从用户空间手动切换引脚。配置端口(ttyS1)时,我struct termios options
使用options.c_cflag |= CRTSCTS
.但这对相关引脚没有影响。我使用的是内核 4.14(但可以移动到 4.16/17)。
有任何想法吗?
答案1
问题在于设备树未正确配置 RTS 和 CTS 引脚以与相关 UART 一起使用。设备树应该包含如下内容:
&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
status = "okay";
};
之前已经适当定义了引脚。