外部RS485トランシーバに接続されたRTSピンを持つUARTがあるため、RTSピンを指定するとトランシーバが転送モードに設定されます。 RTS信号を使用するようにシリアルポートを設定すると、ユーザー空間でピンを手動で切り替える必要はないと思いました。ポート(ttyS1)を設定するときにstruct termios options
使用しますoptions.c_cflag |= CRTSCTS
が、関連するピンには影響しません。私はカーネル4.14を使用しています(しかし4.16/17に移動できます)。
どんなアイデアがありますか?
答え1
問題は、デバイスツリーが関連するUARTで使用するRTSピンとCTSピンを正しく設定しないことです。デバイスツリーには次のコンテンツを含める必要があります。
&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
status = "okay";
};
ピンは以前に適切に定義されていました。