web-dev-qa-db-ja.com

Linuxでシリアルポートを設定する最も簡単な方法は何ですか?

Windowsコマンドプロンプトでシリアルポートを構成するには、次のように簡単に使用できます。

mode com1: 9600,n,8,1

または構成を読み取るには:

mode com1:

Linuxにも同様のコマンドはありますか? Linuxでシリアルポートを見つけて設定する最も簡単な方法は何でしょうか?

13
Hrvoje T

sttyコマンドを使用して、このようなパラメーターを設定できます。

これにより、最初のシリアルポートのすべての設定が表示されます(ttyS0ttyUSB0 USBシリアルポートを使用している場合):

stty -F /dev/ttyS0 -a

これにより、ボーレートが9600、8ビット、1ストップビット、パリティなしに設定されます。

stty -F /dev/ttyS0 9600 cs8 -cstopb -parenb

一般的に人々を混乱させることの1つは、デバイスが閉じられると(つまり、プロセスがデバイスを開いていない場合)、ほとんどのシリアルドライバーが設定をデフォルトにリセットすることです。したがって、上記のsttyコマンドは設定を設定し、それが完了すると、ドライバはそれらを再びリセットします。最初にPOSソフトウェアでデバイスを開いてからstty設定を実行すると、POSソフトウェアがデバイスを再び閉じるまで(たとえば、終了時に)設定が保持されます。

POSソフトウェアには、これらの設定を独自に構成する方法がいくつかあるはずだと思っていました。プリンターを駆動する独自のソフトウェアを作成している場合は、まずデバイスを開いてから、sttyコマンドを実行してください。

また、他の設定を試す必要がある場合もあります。 opostは、出力の後処理が実行されることを意味します。 opostonlcrの両方が設定されている場合、改行(0xa)バイトが出力されたときに、onlcrによって余分な改行(0xd)が追加され、階段印刷など

This is a line
              This is the next line

これは必要な場合とそうでない場合があります。プリンターへの1対1の生の出力が必要な場合は、opostをオフにします(-opostからsttyパラメータへ)。

ハンドシェイク(フロー制御)もsttyを使用して制御されます。プリンターについて何も知らなければ、何かを設定する必要があるかどうかわかりません。

詳細については、sttyのマンページを確認してください。

26
wurtel