Wie kann der Sprung in den bootloader (DFU-Modus) in der software auf dem STM32-F072?
STM32-App Hinweis: 2606 beschreibt, aber es ist kein einfaches code-Beispiel.
InformationsquelleAutor Brad Grissom | 2015-02-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser Antwort wurde getestet, auf die STM32F072 Nucleo board mit IAR EWARM. Diese Antwort mit dem "STM32 Standard Peripheral Library" und sonst nichts.
Beachten Sie, dass der beste/einfachste Weg, um zu überprüfen, dass Sie erfolgreich in den bootloader-Modus (DFU-Modus) ist zum Anschluß eines USB-2-UART-Konverter (bekommt man hier von Sparkfun: http://sfe.io/p9873 für $15) auf Linien PA_9 (USART1_TX) und PA_10 (USART1_RX) (vergessen Sie nicht, eine Verbindung Boden). Ich war nicht in der Lage zu verwenden, die Nucleo USART2 Standard-Anschluss (/dev/ttyACM0), daher der externe USB-2-USART-Verbindung. Dann erstellen Sie ein einfaches C-Programm zu schreiben, 0x7F auf die USART-Verbindung. Wenn Sie in den DFU-Modus, es antwortet mit einem byte: 0x79. Ich benutze Ubuntu, also mein test-Programm kompiliert und läuft unter Linux.
Auch, die einfachste Möglichkeit zum testen der bootloader-Modus (auch als DFU-Modus) jumper der BOOT0 Zeile +3,3 V. Diese sind direkt neben einander auf dem Nucleo.
Hinzufügen zu main.c main () - routine:
Fügen Sie einige code-Bibliotheken/sysconfig/system_stm32f0xx.c bei der Anfang des SystemInit() Funktion:
Erstellen Sie ein einfaches Dienstprogramm, um zu sehen, wenn Sie im bootloader-Modus (auch als DFU-Modus). Dies kompiliert und läuft unter Linux. Stellen Sie sicher, dass Ihre serielle Schnittstelle rechts. Es wird wahrscheinlich /dev/ttyUSB0, wie unten gezeigt.
InformationsquelleAutor Brad Grissom
In meinem Projekt, ich bin im wesentlichen das gleiche tun wie Brad, aber ohne änderung der SystemInit() Funktion.
Den CubeMX HAL definiert als
tut - in meinem Fall - nichts aber anrufen SystemInit();
So können Sie nur überschreiben Sie diese Funktion:
InformationsquelleAutor Hubert Denkmair