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