0

Android デバイスと 232 デバイス間の 232 通信の開発中に、非常に奇妙な問題に遭遇しました。MCU と 232 デバイス間の通信をセットアップしたいのですが、232 デバイスのボーレートは 115200 です。

私が行ったことは次のとおりです。私open()はポートttyO0を取得し、ファイル記述子を取得しましたfd1tcsetattr(fd1,TCSAFLUSH,termiosA)にマップtermiosAするために使用しますfd1。のtermiosAボーレートは 9600 であるため、私の 232 デバイスとは互換性がありません。

その後、以前に作成したものを破棄し、上記のプロセスを、 、に変更fd1して再度実行しました。また、ボーレートは 115200 です。fd2termiosAtermiosBtermiosB

ただし、まだ機能していないことがわかりました。tcsetattr()その理由は、ファイル記述子と設定の間のマップではなく、関数が実際に物理ポートと設定の間のマップを行うためだと思います。そのため、CPU の実際の物理ポートは最初の設定にマップされ、何らかの理由でtermiosA再度変更されませんでした。termiosBしたがって、MCU と 232 デバイス間の通信は失敗します。

4

0 に答える 0