2010-11-20 10 views
3

Arduinoでシリアルに書き込む際に、私は特有の問題があります。私は最近、プロジェクトのボードをDuemilanoveからMega2560に変更しました。これはとうまく働いた、とにかくArduino IDEでシリアルモニタを使用しています(これはなぜ機能していますか?)

Serial.begin(115200); 

:私はとの115200ボー接続を開く設定方法では

if (Serial.available() > 0) { 
    byte c = Serial.read(); 
} 

:私のコードの一部は、例えば、処理プログラムから非常に単純なシリアル読み取りを行いますDuemilanoveしかし、今私はMega2560に切り替えたArduinoはシリアルデータを受信して​​いないようです。しかし、データを送信する処理プログラムを起動する前にシリアルモニタウィンドウを開くと、私の驚くべきことに、すべてのデータが正しく送信されます。

私の質問は、シリアルモニタがどのように変化し、処理プログラムでそれを再現するのですか?

+0

フロー制御を確認しましたか? – dacwe

+0

@William - シリアルモニタから、arduinoが実際にデータを読み込む*ことをどのように知っていますか?あなたはそのためのデバッグエコーメッセージを持っていましたか? – mac

+0

奇妙に聞こえるかもしれませんが、ボード上でも処理アプリでも同じボーレートを持っていますか? –

答えて

1

Arduinoソフトウェアリセットは、シリアルモニタが接続されているときは常に、Arduinoが自動リセットされることを意味します。あなたはこの行動に気付きましたか?これが原因かもしれませんか?

自動リセットをオフにするには、切断可能なトレースがあります。この機能を元に戻す場合は、簡単に解決することができます。

このArduino Wiki Pageが役立つ場合があります。

S

0

シリアルモニターは、ボードにRESETを行います。あなたのコードを実行する前にメガを試してリセットしてください。

関連する問題