1

OSはUbuntu10.0432ビットです。

ここ数年、私は無意識のうちに入力と出力のボーレートが対称的であると想定してきました。ただし、Linuxのtermios構造には、入力ボーレートと出力ボーレートのフィールドが含まれていることに気づきました。そして、buadrate setter/getterの「in」バージョンと「out」バージョンがあります-cfsetospeed/cfsetispeed、cfgetospeed / cfsgetispeed実際には別々のコントロールであり、異なる速度で話したり聞いたりできますか?私は今までにしたいと思いますか?

私がグーグルで見つけることができたものは、入力速度を0に設定すると、入力速度が出力速度と一致するように指示するということです。正しい?出力速度をたとえば9600に設定し、次に入力速度をゼロに設定すると、入力速度は9600になります。次に出力速度を19200に変更するとどうなりますか?入力速度も19200に変更されますか?

少し簡単な質問で申し訳ありませんが、試してみてください。シリアル接続されたハードウェアの状態が不明で、どのように動作しているかわかりません。

4

1 に答える 1

1

すべてのシリアルポートがこれらを個別に構成することをサポートしているわけではありませんが、termios APIは、サポートするものをサポートするための個別のコントロールを提供します。

非対称レートが必要な場合は完全に明白です(話しているデバイスのマニュアルには、入力と出力の異なるレートがリストされており、両方を同時に必要とします)。

「ゼロは入力と出力が同じであることを意味します」を使用する正当な理由はありません。それらを明示的に同じに設定するだけで、コーナーケースについて心配する必要はありません。

于 2012-07-19T14:00:59.157 に答える