Jeśli prześlę szkic, który wysyła dane szeregowe, natychmiast widzę, że diody LED TX / RX migają po przesłaniu szkicu. Jeśli następnie uruchomię monitor szeregowy, szkic wydaje się restartować.
Minimalny szkic pokazujący to zachowanie:
void setup()
{
Serial.begin(9600);
Serial.println("Setup");
}
void loop()
{
Serial.println("Loop");
delay(1000);
}
Testowane z kilkoma płytkami oraz wersjami IDE dla komputerów Mac i Windows.
Przykładowe dane wyjściowe - po otwarciu monitora szeregowego wraca do „Setup”:
Dlaczego to?
serial
arduino-ide
Cybergibbons
źródło
źródło
Odpowiedzi:
Arduino używa sygnałów RTS (Request To Send) (i myślę, że DTR (Data Terminal Ready) ) do automatycznego resetowania. Jeśli otrzymasz terminal szeregowy, który umożliwia zmianę ustawień kontroli przepływu, możesz zmienić tę funkcjonalność.
Terminal Arduino nie daje wielu opcji i to jest ustawienie domyślne. Inne pozwolą ci skonfigurować znacznie więcej. Ustawienie kontroli przepływu na none pozwoli ci podłączyć się / odłączyć od portu szeregowego bez resetowania płyty. jest to bardzo przydatne do debugowania, gdy chcesz po prostu podłączyć złącze i zobaczyć dane wyjściowe bez konieczności rozpoczynania szkicu.
Innym sposobem wyłączenia automatycznego resetowania jest umieszczenie rezystora podciągającego na bolcu resetującym.
Wyłączanie automatycznego resetowania przy połączeniu szeregowym
źródło
Prawda jest zawsze w arkuszach danych, schematach i kodzie:
Arduino UNO faktycznie używa
/DTR
linii do wyzerowania, jak widać w następującym arkuszu danych:źródło
To rozwiązuje problem
źródło