4

Arduino に接続されている USB シリアル ポートからデータを取得しようとしています。私はCygwinを使用しており、書いています

cat /dev/ttyS4

シェルにデータを出力します。

プロセスを停止すると、与えられます

アクセスが拒否されました

もう一度アクセスしようとすると。Cygwin を閉じて再度開き、同じコマンドを入力してシェルに出力を取得する必要があります。

1 つのプログラムからのみシリアル ポートを読み取ることができることに気付きました。たとえば、Arduino ソフトウェアでシリアル ポートからデータを読み取った場合、Cygwin ではアクセスできません。

プログラムを閉じて再度開き、同じコマンドを書き込むことなく、Cygwin で必要な回数だけシリアル ポート データにアクセスできる方法はありますか?

4

1 に答える 1

0

このステートメントcat /dev/ttyS4は、ファイルの最後に到達するまで、シリアル ポートから文字をエコーするようです。ただ、本質的に、シリアル ポートが最後まで到達することはありません。そのため、入力を「終了」するように手配する必要があります。1 つの方法は、Arduino にファイル終了文字 (control-D) を出力ストリームに入れることです。もう1つの方法は、いわゆる「ヒアドキュメント」を使用して、終了する文字列を探すように指示することです。詳細については、この質問を参照してください。

ただし、これにはまだ多くの問題があります。1 つは、control-C がシリアル ポートへのアクセスを閉じないのは間違っているようです。もう1つは、自分のマシンでこれを試しましたが、あなたが尋ねた問題を発生させることができません. だから、それは私が提供できる限りです。

于 2013-05-09T22:28:35.137 に答える