Gibt es eine Möglichkeit, ein Arduino auf die Werkseinstellungen zurückzusetzen?

Ich habe versucht, eine benutzerdefinierte Bibliothek für meinen Leonardo zu erstellen, damit er als natives Gamepad funktioniert, aber wie sich herausstellt, ist es nicht so einfach, wie es aussieht. Nachdem ich etwas Code von Core Arduino bekommen und importiert hatte, wurde alles gut hochgeladen, aber dann hörte Windows auf, Arduino selbst zu erkennen (es wird jetzt als Composite USB Device aufgeführt).

Gibt es jetzt eine Möglichkeit, Arduino auf die Werkseinstellungen zurückzusetzen, ohne dass ein externer Programmierer erforderlich ist oder Arduino-Treiber neu geschrieben werden müssen? Vielen Dank im Voraus.

Dies ist nur eine Info. Behalten Sie den Arduino-Vorschlag in Area 51 im Auge .

Antworten (1)

Der Bootloader des Arduino führt Ihren Anwendungscode nicht sofort aus. Vielmehr sucht es an der seriellen Schnittstelle nach der von Avrdude gesendeten Semaphorsequenz. die wiederum durch den IDE-Upload-Prozess des Arduino nach dem Kompilieren gestartet wird. Wobei Avrdude das Öffnen der seriellen Schnittstelle zu einem Reset des Arduino führt, um den Bootloader beim Senden der Semaphore abzufangen. Dieser obige Prozess sollte funktionieren. Unabhängig von Ihrem Anwendungscode.

Unmittelbar nach dem Einschalten oder Zurücksetzen des Leo sollten Sie in Ihrem Geräte-Manager für etwa 5 Sekunden kurz einen COMM-Port sehen und dann verschwinden und durch Ihre Spielschnittstelle ersetzt werden. Dies gilt auch für die IDE beim Hochladen.

Wenn dies nicht der Fall ist, haben Sie möglicherweise den Bootloader deaktiviert und die Anwendung wird direkt ausgeführt. Beachten Sie, dass beim Programmieren der Anwendung durch den ISP der Bootloader gelöscht wird.

Es ist möglich, dass die Maschine Ihrer IDE, avrdude und das Timing von leo gerade aus sind und verfehlt. Sie könnten versuchen, Leo direkt nach dem Kompilieren und beim Start von Avrdude manuell zurückzusetzen. In den IDE-Einstellungen können Sie die Verbose sowohl für das Kompilieren als auch für das Hochladen einschalten, um besser zu sehen, wann der Leo zurückgesetzt werden muss.

Dies war der Weg der alten Bluetooth-Arduinos, bei denen der DTR des seriellen Anschlusses nicht mit dem Reset des ATmega verbunden war. Wobei beim Leo ein Remote-Reset durch das Öffnen und Schließen der seriellen Schnittstelle bei 1200 Baud ausgelöst wird. Wobei es hier möglich sein kann, dass bei einer Anwendung des Gamecontrollers der USB CDC Virtual Serial Port nicht mit 1200 Baud geöffnet werden kann. Daher muss, wie oben erwähnt, möglicherweise nur das Zurücksetzen zeitlich festgelegt werden.