Dieser Artikel erklärt, wie man das STM32 Black Pill Board mit der Arduino IDE programmiert.
Benötigte Teile
Du benötigst ein STM32 Black Pill Entwicklungsboard und ein USB-C-Kabel, um das Board zu programmieren. Ein Breadboard und einige Kabel sind ebenfalls praktisch, um Dinge auszuprobieren.

STM32 Black Pill

USB C Kabel

Dupont Kabelsatz

Breadboard
Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.
STM32CubeProgrammer herunterladen und installieren
Die Arduino IDE hat keine Funktionalität, um STM32 Mikroprozessoren zu programmieren. Dafür benötigst du zusätzliche Software. Genauer gesagt brauchen wir das STM32_Programmer_CLI Kommandozeilen-Tool, das Teil der STM32CubeProgrammer Software ist.
Um es zu installieren, gehe zu STM32CubeProgrammer website und klicke auf den roten Button mit der Aufschrift „Get Software“:

Die Webseite scrollt zu einer Liste mit verfügbaren STM32CubeProgrammer Installationen für verschiedene Betriebssysteme:

Klicke auf den roten Button „Get latest“ für dein Betriebssystem oder „Select version“, um eine bestimmte Version der STM32CubeProgrammer Software auszuwählen. In beiden Fällen erscheint ein Dialog, in dem du die Lizenzvereinbarung akzeptieren musst:

Danach erscheint ein zweiter Dialog, in dem du dich in einen bestehenden MySt Account einloggen, einen neuen MyST Account erstellen oder „Download as guest“ wählen kannst:

Du kannst versuchen, auf den kleinen Link „Download as guest“ unten rechts im Dialog zu klicken. Ein neues Formular öffnet sich, in dem du deine Daten und vor allem eine E-Mail-Adresse eingeben kannst, an die du einen Download-Link erhältst.
Das hat bei mir jedoch nicht funktioniert. Ich erhielt den Download-Link, bekam aber die Meldung, dass der Link nicht mehr gültig ist.
Stattdessen habe ich einen MyST Account erstellt und konnte dann die Software als Zip-Datei herunterladen, z.B. en.stm32cubeprg-win64-v2-19-0.zip. Entpacke diese Datei und unter Windows findest du darin eine Datei namens SetupSTM32CubeProgrammer_win64.exe. Starte diese .exe-Datei, um die Software zu installieren:

Wenn die Installation erfolgreich war, können wir nun die STM32 Boards installieren.
STM32 Boards installieren
Um den STM32 Core zu installieren, gehe zu File -> Preferences und öffne den Preferences Dialog

Im Preferences Dialog gehe zum Settings Tab. Unten siehst du „Additional boards manager URLs:“. Klicke auf den Button rechts daneben (gelb markiert), um den URL-Editor zu öffnen

Füge im URL-Editor folgende URL zur Liste hinzu:
https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
Das Bild unten zeigt das Eingabefeld des Additional Boards Manager mit der hinzugefügten URL für die STM32 Boards:

So weiß die Arduino IDE, von wo sie die Board-Dateien für STM32 Geräte herunterladen soll. Wenn im Editor bereits URLs vorhanden sind, ist das kein Problem. Füge die neue URL einfach in einer neuen Zeile hinzu.
Öffne als nächstes den BOARDS MANAGER, tippe „STMicroelectronics“ in die Suchleiste und installiere dann die „STM32 MCU based boards“ wie unten gezeigt:

Das startet den Download und die Installation der STM32 Core Dateien, was eine Weile dauern kann:

Beim ersten Versuch bekam ich einen Fehler, aber nach erneutem Drücken von „INSTALL“ hat es funktioniert. Jetzt sind wir bereit, ein STM32 Board auszuwählen und zu programmieren.
Black Pill Board auswählen
Öffne den BOARDS MANAGER und tippe „f4“ in die Suchleiste. Du solltest ein Board namens „Generic STM32 F4 Series“ sehen. Das ist das Board, das du willst, wenn du das Black Pill Board unter den benötigten Teilen hast. Das Bild unten zeigt den Board-Auswahldialog:

Wenn du das Board per USB-Kabel mit deinem PC verbunden hast, solltest du auch den seriellen Port auswählen können, z.B. COM4 wie im Beispiel oben. Wenn du Probleme mit der USB-Verbindung hast, siehe den Abschnitt Probleme.
Board-Parameter einstellen
Bevor wir das Board programmieren können, müssen wir die richtigen Parameter einstellen. Gehe zum „Tool“ Menü:

Am Ende dieses Menüs findest du eine Liste von Parametern, die du auf folgende Werte setzen musst:

Jetzt sind wir endlich bereit, das Board zu programmieren.
Black Pill programmieren
Wenn du das Board erfolgreich per USB verbunden hast, musst du es in den Programmiermodus versetzen, indem du zuerst die BOOT0 Taste gedrückt hältst und dann die NRST Taste drückst und loslässt. Das Bild unten zeigt, wo sich diese Tasten auf dem Black Pill Board befinden:

Beachte, dass du dies jedes Mal tun musst, wenn du ein neues Programm auf das Black Pill laden willst. Du kannst mit dem üblichen Blink-Programm starten:
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
Wenn es erfolgreich ist, sollte die blaue LED auf dem Board jede Sekunde blinken. Wenn nicht, schau dir den nächsten Abschnitt an.
Probleme
Das Flashen des Black Pill Boards kann knifflig sein. Es gibt einige häufige Probleme, die wir in diesem Abschnitt besprechen.
USB-Gerät wird nicht erkannt
Das erste häufige Problem unter Windows ist die Fehlermeldung „USB device not recognized“. Du verbindest das Black Pill Board per USB mit deinem Computer, aber wenn du die BOOT0 und die NRST Taste drückst, um es zu flashen, erscheint folgende Fehlermeldung:

Offenbar kann das bei älteren Boards an einem thermischen Problem liegen, und wenn du den Mikrocontroller etwas erwärmst (indem du deinen Daumen darauf legst), kann dieser Fehler verschwinden. Ich kann nicht bestätigen, dass das funktioniert, da es bei mir nicht geholfen hat.
Ansonsten wird empfohlen, A10 mit Masse (G) zu verbinden, was bei mir tatsächlich geholfen hat. Das Bild unten zeigt, welche Verbindung du herstellen musst:

Wenn du A10 nicht als GPIO-Pin für andere Zwecke verlieren möchtest, kannst du stattdessen einen 10 KΩ Pull-Down-Widerstand verwenden. Dann bleibt der A10 Pin nutzbar und das Flashen funktioniert weiterhin.
Zielgerät nicht gefunden
Wenn du im Serial Monitor die Fehlermeldung „Target Device not found“ siehst, liegt das daran, dass du vergessen hast, die BOOT0 und NRST Tasten zu drücken.

Halte „BOOT“ gedrückt, dann drücke und lasse „NRST“ los. Dadurch versetzt du das Black Pill in den Flash-Modus. Das musst du jedes Mal machen, wenn du ein Programm auf das Black Pill laden willst.
STM32CubeProgrammer nicht gefunden
Wenn du im Serial Monitor die Fehlermeldung „STM32CubeProgrammer not found“ siehst, wenn du versuchst, ein Programm auf das Black Pill zu laden, liegt das meist daran, dass das STM32_Programmer_CLI.exe Programm nicht im Systempfad ist.

Unter Windows gehe zu Einstellungen, suche nach „env“ und klicke auf „Edit the system environment variable“, wie unten gezeigt:

Es öffnet sich ein Dialog, in dem du deine Umgebungsvariablen findest. Du musst den Pfad zum STM32_Programmer_CLI.exe Programm zur Path Variable hinzufügen. Wähle sie aus und klicke auf Edit..:

Drücke dann „Neu“, um deinen Pfad zum STM32_Programmer_CLI.exe Programm zur Liste hinzuzufügen. In meinem Fall ist das „C:\Maet\Software\STM32CubeProgrammer\Bin“, wie unten gezeigt. Bei dir wird es anders sein!

Möglicherweise musst du deinen Computer neu starten, damit die Änderung des Systempfads wirksam wird. Danach sollte der Fehler nicht mehr auftreten.
Fazit
In diesem Artikel hast du gelernt, wie man das STM32 Black Pill Board mit der Arduino IDE programmiert.
Wenn du wissen möchtest, wie man Boards für andere gängige Mikrocontroller in der Arduino IDE installiert, schau dir die Programming the Pico W5 with Arduino IDE, die How to Set Up a Raspberry Pi und die A Beginner’s Guide To ESP32 Programming Tutorials an.
Wenn du Fragen hast, kannst du sie gerne im Kommentarbereich stellen.
Viel Spaß beim Tüfteln ; )

