1

Serial と Serial1 を同時に動作させることはできますか?

void setup() {
  Serial.begin(9600);
  while (!Serial);                        // while not open, do nothing
  Serial1.begin(9600);
}

void loop() {
  while (Serial.available() > 0) {        // if at least one char is available
    /* CODE */
    //Serial.write(Serial.read());
  }

  while (Serial1.available() > 0) {
    /* CODE */
    //Serial.write(Serial1.read());
  }
}

シリアル モニタを開くと、最初は正常に動作しますが、両方ある場合、2 番目は印刷結果が無限ループになります。どうすればこれを解決できますか?

»» Arduino Leonardo ボードは Serial1 を使用して、ピン 0 (RX) と 1 (TX) で RS232 経由で通信します。シリアルは USB CDC 通信用に予約されています。

Serial1とまったく同じように使用できますSerialか? Serial1 で読み取られる信号の種類は何ですか?

4

1 に答える 1

0

ここで推測する必要がありますが、その理由は、書き込みデータを消費する Serial1 に何も接続されていないためだと思います。したがって、コードはwrite呼び出しでスタックします。

これが実際に当てはまるかどうかを確認するにはSerial1.write(Serial1.read());、(2 番目のループで) に変更しSerial.write(Serial1.read());ます。これがブロックされない場合、私の推測はおそらく正しかったでしょう。

http://arduino.cc/en/Guide/ArduinoLeonardo#toc6は、Serial1 とは何かを示しています。

ハードウェア シリアル ポート (ピン 0 と 1、RX と TX) を使用するには、Serial1 を使用します。(詳細については、Serial リファレンス ページを参照してください。)

したがって、ボードの隅にある RX および TX ポート / 0 および 1 ピンを介して通信する場合は、Serial1 を使用します。

于 2013-04-02T18:37:52.327 に答える