Dies ist der Hauptfehler, den ich bekomme, wenn ich versuche, mein ARDUINO-Programm auszuführen. Die vollständige Liste der Fehler lautet wie folgt:
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
Mein Code lautet wie folgt:
int led=13;
void setup()
{
pinMode(13,OUTPUT);
}
void loop()
{
digitalWrite(13,HIGH);
delay(1000);
digitalWrite(13,LOW);
delay(1000);
}
Ich habe versucht, die Treiber zu aktualisieren (sie sind vollständig aktualisiert) und einige Programme herunterzuladen. Ich habe Windows 7 und mein Arduino ist ein MEGA 2560. Es erscheint im Geräte-Manager und alle meine Verbindungen sind korrekt. Das grüne PWR-Licht leuchtet und das blinkende L-Licht. Die RX- und TX-Anzeigen blinken, wenn ich ein Update durchführe. Ich habe fast alles im Web ausprobiert. Worin besteht das Problem?
Die Fehlermeldung bedeutet im Wesentlichen, dass der Programmierer den Bootloader auf dem Gerät nicht kontaktieren kann. Der Code, den Sie hochladen möchten, hat keine Auswirkung auf das Problem.
Die Ursachen dafür können zahlreich und vielfältig sein, einige mögliche Probleme:
UART-Kommunikation
Blinken geschieht, also verwenden Sie hoffentlich nicht den falschen Port. Es lohnt sich vielleicht noch einmal zu überprüfen, manchmal werden USB-COM-Geräte an merkwürdigen Portnummern installiert.
Verbinden Sie TX mit RX (und trennen Sie sie vom AVR, wenn möglich). Öffnen Sie dann ein Terminal am COM-Port. Wenn Sie sie eingeben, sollten die Zeichen als Echo angezeigt werden. Wenn nicht, ist etwas Upstream des Chips falsch, es könnte der Kommunikationschip sein (ich denke, der Arduino 2560 verwendet aus irgendeinem Grund einen sekundären AVR anstelle eines FTDI, sodass dieser entweder seine Software oder seine Software beschädigen könnte) Hardware)
ATmega*
Bootloader
Der AVR führt den Bootloader aus irgendeinem Grund nicht aus. Wenn der Programmierer das Mikro nicht vor dem Verbindungsaufbau zurücksetzt, kann dies der Grund sein. Versuchen Sie, den AVR zurückzusetzen (drücken Sie die Taste und lassen Sie sie wieder los), während der Programmierer versucht, eine Verbindung herzustellen. Manchmal verhindert eine Software, die in einer engen Schleife ausgeführt wird, eine Verbindung des Bootloaders.
Andernfalls könnten die Sicherungen durcheinander geraten oder der Code gelöscht werden. Sie müssen den Bootloader und die entsprechenden Sicherungen erneut flashen. Siehe auch die entsprechende Infoseite für Ihr Gerät.
Nur Arduino Mega 2560: Software ATmega8U/16U
Hardwareschaden an der Karte, den AVR (s) oder dem FTDI-Chip
Überprüfen Sie diesen Forenbeitrag für weitere Ideen.
Ein weiterer möglicher Grund für diesen Fehler für den Mega 2560 ist, wenn Ihr Code drei Ausrufezeichen in einer Reihe enthält. Vielleicht in einer kürzlich hinzugefügten Zeichenfolge.
3 Knallmarken in Folge veranlassen den Mega 2560 Bootloader in den Monitor-Modus, von dem aus er die Programmierung nicht beenden kann.
"!!!" <--- bricht den Mega 2560-Bootloader.
Um das Problem zu beheben, trennen Sie den Arduino USB vom Computer, um den COM-Port zurückzusetzen, und kompilieren Sie ihn dann mit nur zwei Ausrufezeichen oder mit Leerzeichen zwischen oder was auch immer. Verbinden Sie dann das Arduino und das Programm wie gewohnt.
Ja, das hat mich gestern gebissen und heute habe ich den Täter ausfindig gemacht. Hier ist ein Link mit weiteren Informationen: http://forum.arduino.cc/index.php?topic=132595.0
Ich habe diese Fehlermeldung erhalten, weil ich in der avrdude-Befehlszeile nicht den richtigen Programmierer angegeben habe. Sie müssen "-c arduino" angeben, wenn Sie ein Arduino-Board verwenden.
Dieser Beispielbefehl liest den Status der hfuse:
avrdude -c arduino -P /dev/ttyACM0 -p atmega328p -U hfuse:r:-:h
Nach meinem bescheidenen Verständnis tritt dieser Fehler bei verschiedenen Szenarien auf
manchmal passiert dies, wenn Sie Kabel an die Platine angeschlossen haben. Sie müssen das Board von allen installierten Steckbrettern oder Drähten trennen und erneut hochladen. Es scheint, dass die Pins 0 (RX) und 1 (TX), die für die serielle Kommunikation verwendet werden können, problematisch sind und beim Hochladen des Codes besser frei sind.
Manchmal geschieht es zufällig ohne bestimmte Gründe!
Überall im Internet gibt es alle möglichen Lösungen, die manchmal mit Magie kaum zu unterscheiden sind! Vielleicht sollte sich das Arduino-Team bessere Compiler-Fehler vorstellen, die den Benutzern helfen, zwischen diesen verschiedenen Ursachen zu unterscheiden.
Das gleiche Problem ist mir passiert und keine der oben genannten Lösungen hat funktioniert. Was passierte war, dass ich eine Arduino uno verwendete und alles in Ordnung war, aber als ich einen Arduino Mega 2560 kaufte, bekam ich den Fehler, egal welche Skizze ich hochzuladen versuchte:
avrdude: stk500v2_ReceiveMessage(): timeout
Und es war nur auf einem meiner Windows-Computer und der andere war einfach in Ordnung.
Lösung:
Mein Problem wurde gelöst, indem Sie auf Tools> Boards> Boards Manager ... gehen und dann oben links in den geöffneten Fenstern im Abschnitt "Typ" die Option "Aktualisierbar" auswählen. Wählen Sie dann die Elemente in der Liste aus und klicken Sie rechts auf Aktualisieren.
Ich bin mir nicht sicher, ob dies alle Probleme lösen wird, aber es hat meines gelöst.
Ich habe direkt an den USB-Port in meinem Laptop angeschlossen und das Problem mit dem Timeout wurde behoben.
Früher von Port-Replikator ausprobiert, aber es wurde nicht einmal Arduino erkannt, daher wählte ich einen falschen Port - was zu einer Timeout-Nachricht führte.
Vergewissere dich also, dass es für dein Betriebssystem sichtbar ist.
Wenn Sie die Ino-Befehlszeile verwenden:
ino upload
es kann sein, dass Sie die Arduino-Software gleichzeitig verwenden.
Ich habe diesen Code aus dem Arduino-Setup ausgeführt und nach dem Ändern dieselbe Fehlerbehebung erhalten
serielle Schnittstelle zu COM13
GO TO Option
tool >> serielle schnittstelle >> COM132
Stellen Sie sicher, dass der serielle Monitor nicht läuft, was zu Störungen beim Hochladen führen kann.
Dies ist keine wirklich fixierende Lösung, kann aber anderen helfen. Anders als Nick für mich gesagt hatte, lag es an Code in meinem Programm. Ich habe das Mega-ADK-Modell. Das Problem war mit einer switch-Anweisung für die Verarbeitung und Analyse des zurückgegebenen Bytes [] von der USB-Verbindung zum Android verbunden. Es ist sehr seltsam, weil es jedes Mal perfekt kompiliert werden würde, aber wie das OP erklärt hatte, fehlschlagen würde. Ich kommentierte es und es hat gut funktioniert.