Wenn ich eine Skizze hochlade, die serielle Daten sendet, blinken die TX / RX-LEDs sofort, sobald die Skizze hochgeladen wurde. Wenn ich dann den seriellen Monitor starte, scheint die Skizze neu zu starten.
Eine einfache Minimalskizze, die dieses Verhalten zeigt:
void setup()
{
Serial.begin(9600);
Serial.println("Setup");
}
void loop()
{
Serial.println("Loop");
delay(1000);
}
Getestet mit mehreren Boards sowie Mac- und Windows-Versionen der IDE.
Beispielausgabe - beim Öffnen des seriellen Monitors wird auf "Setup" zurückgegriffen:
Warum ist das?
serial
arduino-ide
Cybergibbons
quelle
quelle
Antworten:
Der Arduino verwendet die RTS- Signale (Request To Send) (und ich denke, DTR- Signale (Data Terminal Ready) ) zum automatischen Zurücksetzen. Wenn Sie ein serielles Terminal erhalten, mit dem Sie die Einstellungen für die Flusskontrolle ändern können, können Sie diese Funktionalität ändern.
Das Arduino-Terminal bietet Ihnen nicht viele Optionen, und das ist die Standardeinstellung. Mit anderen können Sie viel mehr konfigurieren. Wenn Sie die Flusskontrolle auf "Keine" einstellen, können Sie die serielle Verbindung herstellen oder trennen, ohne die Karte zurücksetzen zu müssen. Dies ist sehr nützlich für das Debuggen, wenn Sie nur den Konnektor anschließen und die Ausgabe anzeigen möchten, ohne die Skizze erneut beginnen zu müssen.
Eine andere Möglichkeit, den automatischen Reset zu deaktivieren, besteht darin, einen Pull-Up-Widerstand auf den Reset-Pin zu legen.
Deaktivieren der automatischen Rücksetzung bei serieller Verbindung
quelle
Die Wahrheit ist immer in den Datenblättern, den Schaltplänen und dem Code:
Der Arduino UNO verwendet die
/DTR
Leitung tatsächlich , um einen Reset auszulösen, wie Sie auf dem folgenden Datenblatt sehen können:quelle
Dies behebt das Problem
quelle