シリアルインターフェースからの読み取り

シリアルインターフェースからの読み取り

出力の読み取り以外にデータを読み取る必要があるシリアル デバイスを実行しています (デバイス自体を制御することはできません)。Windows のハイパー ターミナルを使用すると、意味のあるトラフィックを検出できます。昨日、cat (またはデータを読み取って stdout に印刷する独自の小さな C プログラム) を使用したところ、正常に動作しました。

現在、cat/my program を使用すると、破損したデータしか取得できませんが、ハイパーターミナルでは依然としてデータが表示されます。

一体何が間違っているのでしょうか? 昨日はうまくいったのに、今日はうまくいかないのはなぜでしょうか?

私が読んでいる/読んでいたファイルは/dev/ttyUSB1

*プログラムと cat の両方を実行することはなく、一度にどちらか一方のみを実行することに注意してください。

答え1

SO の誰かが正しい方向を示唆していました。問題はボーレートにあり、必要な値とは異なる値に設定されていました。

ボーレートを確認するには: stty -F /dev/ttyUSB1
ボーレートを設定するには: stty -F /dev/ttyUSB1 57600(私の場合、デバイスに必要なボーレートは 57600 です)

今では完璧に機能しています。

答え2

シリアル ポートは特に奇妙なものです。古い端末エミュレーション プログラムを使用することをお勧めします。以前はこれが最良だと思っていましたtipが、もうソースを持っている人はいないようです。UUCPcuが付属していますが、インストールと設定が非常に面倒なので、気にする必要はありません。

グーグルでちょっと調べてみると、人々はミニコム最近。Stack Overflowの質問です少なくともminicomUSB シリアル デバイスとの通信に使用する場合、何らかの関係があるようです。

結果がどうなったか教えてください。質問を更新するか、コメントなどを残してください。

関連情報