- Erforderliche Materialien
- Schaltplan
- Hochladen des Maple Boot Loader auf das STM32 Development Board
- Vorbereiten der Arduino IDE und Installieren der Treiber
- STM32 (Blue Pill) direkt über den USB-Anschluss programmieren
Das STM32-Entwicklungsboard mit dem STM32F103C8-Mikrocontroller wird dank seiner ARM Cortex M3-Architektur, hoher Betriebsgeschwindigkeit und mehr Peripherieoptionen immer beliebter. Da dieses Board einfach mit der Arduino IDE programmiert werden kann, ist es für viele Hobbyisten und Ingenieure eine bevorzugte Wahl für schnelles Prototyping.
In unserem vorherigen Tutorial haben wir die Grundlagen des STM32 Development Board gelernt und es so programmiert, dass eine LED blinkt. Aber es gab einen großen Nachteil. Um das Board zu programmieren, verwendeten wir ein FTDI-Programmiermodul und mussten beim Hochladen und Testen eines Codes den Boot 0-Jumper zwischen und 1 Position umschalten, was sicherlich eine entmutigende Aufgabe ist. Auch der Mini-USB-Anschluss auf der Entwicklungsplatine blieb völlig ungenutzt. Der Grund dafür ist, dass beim Kauf des STM32-Entwicklungsboards kein Arduino-fähiger Bootloader mitgeliefert wird und das Board daher von Ihrem Computer nicht erkannt wird, wenn es über USB angeschlossen wird.
Hoffentlich gibt es einen experimentellen Bootloader, der von LeafLabs für Maple Mini Boards entwickelt wurde. Dieser Bootloader kann einmal in das STM32 geflasht werden. Danach können wir den USB-Anschluss der STM32-Karte direkt verwenden, um Programme wie alle anderen Arduino-Karten hochzuladen. Dieser Bootloader befindet sich jedoch zum Zeitpunkt der Dokumentation dieses Lernprogramms noch in der Entwicklungsphase und ist für kritische Anwendungen nicht empfehlenswert. Bevor Sie mit diesem Lernprogramm fortfahren, stellen Sie sicher, dass Sie das vorherige Lernprogramm gelesen haben, um die Grundlagen dieses Boards einschließlich der Details zu den Spezifikationen und Pinbelegungen zu verstehen.
Erforderliche Materialien
- STM32 - (BluePill) Development Board (STM32F103C8)
- FTDI-Programmierer
- Steckbrett
- Kabel anschließen
- Laptop mit Internet
Schaltplan
Um die STM32 Blue Pill-Karte direkt über den USB-Anschluss zu programmieren, müssen Sie zuerst den Maple-Bootloader in die MCU flashen. Dazu benötigen wir eine serielle FTDI-Karte. Diese Karte ist wie unten gezeigt mit dem Rx- und Tx-Pin des STM32 verbunden.
Der Vcc-Pin der FTDI-Karte ist mit dem 5-V-Pin des STM32 zur Stromversorgung der Karte verbunden. Die Erdung ist mit der Erdung des STM32 verbunden. Der Rx- und Tx-Pin der FTDI-Karte ist mit dem A9- bzw. A10-Pin des STM32 verbunden. Dabei ist der A9 der Tx-Pin der STM32-MCU und der A10 der Rx-Pin.
Stellen Sie sicher, dass der Jumper-Pin für Boot 0 auf der Platine beim Hochladen des Bootloaders auf 1 (Programmiermodus) gesetzt ist. Sobald der Bootloader blinkt, kann dieser Pin wieder in die Ausgangsposition (Betriebsmodus) gebracht werden.
Hochladen des Maple Boot Loader auf das STM32 Development Board
Sobald wir die obige Verbindung hergestellt haben, verbinden Sie die FTDI-Karte mit Ihrem Computer und befolgen Sie die Schritte, um den Bootloader in den STM32 zu flashen.
Schritt 1: Wir müssen die Binärdateien der Bootloader-Programmdatei (Bin-Datei) von der Github-Seite herunterladen. Es gibt viele Versionen der Bin-Datei. Verwenden Sie für das Blue Pill-Board diesen Github-Link und klicken Sie auf den Download-Button, um die Bin-Datei herunterzuladen.
Schritt 2: Als nächstes müssen wir die STM Flash Loader-Software herunterladen und installieren, um die heruntergeladene Bin-Datei in STM32 zu flashen. Klicken Sie auf diesen Link, um zur ST-Website zu gelangen, scrollen Sie nach unten und klicken Sie auf Software herunterladen
Schritt 3: Um die Software herunterzuladen, müssen Sie Ihre E-Mail-Adresse eingeben und der Download-Link wird an Ihre E-Mail gesendet. Folgen Sie dann dem Link zurück zur Website und klicken Sie erneut auf Software herunterladen. Der Download beginnt. Ja, es ist ein bisschen frustrierend, aber so sollte es gemacht werden. Vergessen Sie nicht, in Ihrem Spam-Ordner nach E-Mails zu suchen. Manchmal dauert es einige Minuten, bis die E-Mail eintrifft.
Schritt 4: Stellen Sie nach dem Herunterladen der Software sicher, dass Ihre STM32-Karte über die FTDI-Karte mit Ihrem Computer verbunden ist, und starten Sie die Software. Die Software erkennt den COM-Anschluss automatisch, wenn Sie den Geräte-Manager nicht verwenden, und stellt sicher, dass Sie die richtige COM-Anschlussnummer auswählen. In meinem Fall ist es COM4. Lassen Sie den Rest der Einstellung wie unten gezeigt.
Schritt 5: Klicken Sie zweimal auf die Schaltfläche Weiter. Die Software erkennt die Board-Details automatisch wieder und zeigt sie wie unten gezeigt an. Die Karte, die wir verwenden, ist STM32F1 mit 128K Flash-Speicher.
Schritt 6: Wählen Sie im nächsten Schritt Auf Gerät herunterladen und navigieren Sie zu dem Speicherort, an den wir in Schritt 1 unsere Bin-Datei heruntergeladen haben, und wählen Sie sie aus. Klicken Sie auf Weiter.
Schritt 7: Die Software lädt einige der erforderlichen Dateien wie unten gezeigt herunter und beginnt dann mit dem Flashen.
Schritt 8: Sobald das Blinken erfolgreich abgeschlossen wurde, wird der folgende Bildschirm angezeigt. Klicken Sie auf Schließen und beenden Sie die Anwendung. Wir haben das STM32-Board mit Arduino Bootloader erfolgreich geflasht. Jetzt müssen wir die Arduino IDE vorbereiten und die Treiber installieren, bevor wir die STM32-Karte programmieren können.
Vorbereiten der Arduino IDE und Installieren der Treiber
Führen Sie die folgenden Schritte aus, um die Arduino IDE für die Verwendung mit dem STM 32 Development Board herunterzuladen und vorzubereiten.
Schritt 1: - Wenn Sie die Arduino IDE noch nicht installiert haben, laden Sie sie über diesen Link herunter und installieren Sie sie. Stellen Sie sicher, dass Sie Ihr korrektes Betriebssystem auswählen.
Schritt 2: - Öffnen Sie nach der Installation der Arduino IDE die erforderlichen Pakete für die STM32-Karte und laden Sie sie herunter. Dies kann durch Auswahl von Datei -> Einstellungen erfolgen .
Schritt 3: - Wenn Sie auf Einstellungen klicken, wird das unten gezeigte Dialogfeld geöffnet. Fügen Sie im zusätzlichen Textfeld URL des Boards Managers den folgenden Link ein
dan.drown.org/stm32duino/package_STM32duino_index.json
und drücken Sie OK.
Schritt 4: - Gehen Sie nun zu Tool -> Boards -> Board Manager . Dadurch wird das Dialogfeld "Boards Manager" geöffnet, nach "STM32F1" gesucht und das angezeigte Paket installiert.
Schritt 5: Navigieren Sie nach der Installation des Pakets zu C: \ Programme (x86) Arduino \ hardware \ Arduino_STM32-master \ drivers \ win. Dort finden Sie install_drivers.bat und install_STM_COM_drivers.bat .
Schritt 6: Klicken Sie auf beide Bat-Dateien und installieren Sie die Treiber. Sie erhalten einen DOS-Bildschirm wie unten gezeigt.
Jetzt ist die Arduino IDE für die Programmierung des STM32 (Blue Pill) Development Board vorbereitet und die Treiber sind ebenfalls installiert.
STM32 (Blue Pill) direkt über den USB-Anschluss programmieren
Entfernen Sie die FTDI-Karte und alle vorhandenen Verbindungen von Ihrem STM32. Verwenden Sie einfach den Micro-USB-Anschluss auf der STM32-Karte, um ihn wie unten gezeigt an den Computer anzuschließen. Stellen Sie sicher, dass der Jumper 0-Pin wieder auf 0 steht (Betriebsmodus). Danach müssen wir den Jumper nicht mehr umschalten, um die Programme hochzuladen und auszuführen.
Ihr Computer sollte das Board jetzt erkennen können. Warten Sie eine Weile, bis zusätzliche Treiber installiert werden. Rufen Sie dann den Geräte-Manager auf und überprüfen Sie, ob Ihre STM32-Karte im Abschnitt COM und Port erkannt wurde (siehe Abbildung unten). Meins ist mit COM8 unter dem Namen Maple Mini verbunden.
Gehen Sie zu Extras und scrollen Sie den Generic STM32F103C Serie zu finden, wie unten gezeigt. Stellen Sie dann sicher, dass es sich bei der Variante um einen 64k-Flash-Typ handelt , die CPU-Geschwindigkeit 72 MHz beträgt, und ändern Sie die Upload-Methode in STM32duino Bootloader . Wählen Sie auch den richtigen COM-Anschluss gemäß dem auf Ihrem Geräte-Manager.
Nachdem alle Änderungen vorgenommen wurden, überprüfen Sie die untere rechte Ecke der Arduino IDE. Beachten Sie, dass die folgende Einstellung festgelegt wird. Meine STM32-Karte ist mit COM8 verbunden, Ihre kann jedoch abweichen
Jetzt ist die Arduino IDE bereit, die STM 32 Blue Pill Development Boards zu programmieren. Laden Sie das Sample Blink-Programm von der Arduino IDE auf das STM32 Blue Pill Board hoch, um sicherzustellen, dass alles ordnungsgemäß funktioniert. Das Beispielprogramm finden Sie unter
In dem sich öffnenden Beispielprogramm müssen wir eine kleine Änderung vornehmen. Standardmäßig wird das Programm für PB1 geschrieben, aber auf unserer Karte ist die integrierte LED mit PC13 verbunden. Ersetzen Sie also alle PB1 durch PC13 und wir können fortfahren. Das vollständige Beispielprogramm, das geändert wurde, finden Sie auch unten auf dieser Seite.
Der Code innerhalb der Schleifenfunktion allein ist unten gezeigt, wo wir feststellen können, dass der PC13-Pin 1000 Millisekunden lang auf HIGH (Ein) gehalten und dann für weitere 1000 Millisekunden auf LOW (Aus) geschaltet wird, und dies geschieht für unendliche Zeiten, seit er eingeschaltet ist Schleifenfunktion . Somit scheint die LED im Abstand von 1000 Millisekunden zu blinken.
digitalWrite (PC13, HIGH); // LED einschalten (HIGH ist der Spannungspegel) delay (1000); // warte auf ein zweites digitalWrite (PC13, LOW); // Schalte die LED aus, indem du die Spannung niedrig verzögerst (1000); // warte mal eine Sekunde
Drücken Sie die Upload-Taste auf der Arduino IDE und Ihr Programm sollte kompiliert und hochgeladen werden. Wenn alles wie erwartet funktioniert hat, sollte auf Ihrer Arduino IDE-Konsole Folgendes angezeigt werden.
Wenn das Programm erfolgreich hochgeladen wurde, sollte die grüne LED im Abstand von 1 Sekunde blinken, wie im folgenden Video gezeigt. Sie können auch mit dem Programm herumspielen, um die Verzögerung zu erhöhen oder zu verringern. Jetzt können Sie das STM32-Entwicklungsboard (Blue Pill) wie jedes andere Arduino-Board verwenden, dh Sie müssen die Position der Jumper nicht mehr ändern oder externe Hardware zum Hochladen und Testen von Programmen verwenden.
Ich hoffe, Sie haben das Tutorial verstanden und fanden es nützlich, mit STM32 Board zu beginnen. Wenn Sie Probleme haben, lassen Sie sie im Kommentarbereich. Sagen Sie mir auch, welche Projekte wir in Zukunft mit diesem STM32-Board versuchen sollten.