31

画面を使用して、シリアルコンソールからテキストを読み取ります。問題は、出力に改行のみが含まれているように見え、\ nキャリッジリターンが含まれていないように見えるため、表示は次のようになります...

Line1
     Line2
          Line3

この問題を修正するパッチはありますか?

4

4 に答える 4

29

onlcrアウトゴーイング ニューラインをキャリッジリターンに変換するためのものです

stty -F /dev/ttyS0 inlcr着信改行をキャリッジリターンに変換します。画面の起動後に別の端末から実行して、起動時に画面がリセットされるのを防ぐことができます。ただし、残念ながら、これによって問題が変わるだけです。その後、リターンのみが取得され、改行は取得されません。

必要なのは、端末が受信するように着信改行にリターンを追加するオプションです\n\r。これは、シリアルデバイスが最初に出力する必要があるものです。onlret送信データに対してこれを行うオプションinlretがあるようですが、この場合に必要と思われるオプションはありません。

私はまったく同じ問題を抱えており(picocomを使用していますが)、標準の修正を見つけるために何日もグーグルを繰り返していますが、誰もそれを持っていないようです。\n出力するだけで出力させることができないシリアルデバイスはたくさんありますが\r\n、それらすべてが2人のLinuxユーザーだけのものであるとは信じません。何が!?

于 2012-03-19T23:24:47.950 に答える
12

pyserialに付属しているminiterm.pyプログラムを使用すると、改行がcrlfとして解釈されます。これは、最も完全な機能を備えたターミナルエミュレータではありませんが、単純なシリアルデバイスと対話するために機能します。

使用構文(OSX上):

miniterm.py /dev/tty.usbserial-XXXXXX 115200

XXXXXXを、システムに表示されるデバイスに置き換えます。

于 2014-01-29T18:25:35.667 に答える
4

試してみてくださいstty onlcr

マニュアルページには、出力時に改行をキャリッジリターン/改行のペアに変換すると記載されています。これは必要なもののようです。

于 2011-10-18T20:01:42.167 に答える
3

私の場合はうまくいきました:stty -F /dev/ttyACM0 -icrnl

シリアルは、CRをNLに変換するように暗黙的に設定されているためです。このコマンドはそれを元に戻しました。の前にあるマイナス文字に注意してくださいicrnl

于 2017-04-20T15:30:06.147 に答える