2012-11-01 9 views
5

cat /dev/ttyACM0の結果がビーグル凍結します。私はUSBシリアルを抜いたときにフリーズします。/dev/ttyACM0から出力を読み取るとビーグル凍結(埋め込み物)

本質的に私のセットアップは、私のラップトップにUSB経由で接続されたビーグルボードで、COM6経由で通信しています。また、Web共有を介してWebに接続しています。私はまたArduino Teensy ++コントローラから別のUSBを接続しています。このコントローラは、USBシリアル経由でビーグルボードにデータを送信しています。この演習のポイントは、USBシリアルからデータを読み込むことです。

私が読むことのプロセスはcat /dev/ttyACM0です。この結果、最初の2行のデータが印刷され、ビーグルボード全体がフリーズします。十代の++を抜くと、10-20行のように表示されます(バッファが何であれ)。なぜこれが起こっているのか分かりません。

誰でも手助けできますか?ありがとう

+0

CTSのような余分なコントロールラインを使用していますか?ビーグルボードが待っているのかもしれない。 – Evert

+0

わかりません。私はそれをチェックするつもりです。しかし、ビーグルボードがロックされると、USBのプラグを抜くと、バッファー上に何が入っているのかが分かります(基本的にロックアップ以来送られてきたものです)。 " [1757.210482] cdc_acm 1 -1:1.1:acm_start_wb - usb_submit_urb(書き込みバルク)に失敗しました:-19 " –

+0

また、teensy ++が、シリアルデータを読み取るための標準のWindowsベースのアプリケーション、たとえばbrayターミナルやterraterm。これ以外にも、あなたの組み込みLinuxがUSBシリアルデバイスを扱う方法と関係があると思います。まだ何が分かっていないか編集:私はシリアルポート'stty raw -F/dev/ttyACM0' – Evert

答えて

2

あなたがデータを送信している速度を調べると、arduinoにあまりにも速くデータを送信するとarduinoバッファを満たすことができ、ロックアップしているようです。出力データに遅延を追加するか、arduinoがバッファを十分に速く空にしていることを確認してください。

+0

ありがとうございます。私はそれを試してみましょう。 –

関連する問題