Questo articolo spiega come programmare la scheda STM32 Black Pill con l’Arduino IDE.
Componenti necessari
Ti serviranno una scheda di sviluppo STM32 Black Pill e un cavo USB-C per programmare la scheda. Una breadboard e alcuni cavi saranno utili per fare prove.

STM32 Black Pill

Cavo USB C

Set di fili Dupont

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.
Scarica e installa STM32CubeProgrammer
L’Arduino IDE non ha la funzionalità per programmare microprocessori STM32. Serve un software aggiuntivo. In particolare, ci serve lo strumento da riga di comando “STM32_Programmer_CLI” che fa parte del STM32CubeProgrammer software.
Per installarlo, vai al sito STM32CubeProgrammer e clicca sul pulsante rosso “Get Software”:

Il sito scorrerà fino a mostrare le installazioni disponibili di STM32CubeProgrammer per diversi sistemi operativi:

Clicca sul pulsante rosso “Get latest” per il tuo sistema operativo o su “Select version” per scegliere una versione specifica del software STM32CubeProgrammer da installare. In entrambi i casi apparirà una finestra di dialogo dove devi accettare il contratto di licenza:

Dopodiché apparirà una seconda finestra di dialogo, dove puoi accedere a un account MySt esistente, crearne uno nuovo o “Download as guest”:

Puoi provare a cliccare sul piccolo link “Download as guest” in basso a destra nella finestra. Si aprirà un nuovo modulo dove inserire i tuoi dati e soprattutto un indirizzo email, dove riceverai il link per il download.
Tuttavia, a me non ha funzionato. Ho ricevuto il link ma il messaggio diceva che il link non è più valido.
Invece, ho creato un account MyST e così sono riuscito a scaricare il software come file zip, ad esempio en.stm32cubeprg-win64-v2-19-0.zip. Estrai questo file e sotto Windows troverai un file chiamato SetupSTM32CubeProgrammer_win64.exe al suo interno. Esegui questo file .exe per installare il software:

Se l’installazione è andata a buon fine, possiamo procedere con l’installazione delle schede STM32.
Installa le schede STM32
Per installare il core STM32 vai su File -> Preferences e apri la finestra delle Preferenze

Nella finestra delle Preferenze vai alla scheda Settings. In fondo vedrai “Additional boards manager URLs:”. Clicca sul pulsante a destra (evidenziato in giallo) per aprire l’editor degli URL

Nell’editor degli URL aggiungi il seguente URL alla lista:
https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
L’immagine sotto mostra il campo di modifica degli Additional Boards Manager con l’URL aggiunto per le schede STM32:

Questo farà sapere all’Arduino IDE da dove scaricare i file delle schede STM32. Se l’editor contiene già degli URL va bene lo stesso. Basta aggiungere il nuovo URL in una nuova riga.
Ora apri il BOARDS MANAGER, digita “STMicroelectronics” nella barra di ricerca e installa “STM32 MCU based boards” come mostrato sotto:

Questo avvierà il download e l’installazione dei file core STM32, che richiederà un po’ di tempo:

La prima volta ho incontrato un errore, ma dopo aver premuto “INSTALL” una seconda volta ha funzionato. Ora siamo pronti per selezionare una scheda STM32 e programmarla.
Selezione della scheda Black Pill
Apri il BOARDS MANAGER e digita “f4” nella barra di ricerca. Dovresti vedere una scheda chiamata “Generic STM32 F4 Series”. È la scheda che ti serve, se hai la Black Pill elencata tra i componenti necessari. L’immagine sotto mostra la finestra di selezione della scheda:

Se hai la scheda collegata al PC tramite cavo USB, dovresti poter selezionare anche la porta seriale, ad esempio COM4 come nell’esempio sopra. Se hai problemi con la connessione USB, consulta la sezione Problemi.
Impostazione dei parametri della scheda
Prima di programmare la scheda dobbiamo impostare i parametri corretti. Vai al menu “Tool”:

Alla fine di questo menu troverai una lista di parametri da impostare con i seguenti valori:

Ora siamo finalmente pronti per programmare la scheda.
Programmare la Black Pill
Se hai collegato correttamente la scheda via USB, devi mettere la scheda in modalità programmazione premendo e tenendo premuto il pulsante BOOT0 e poi premendo e rilasciando il pulsante NRST. L’immagine sotto mostra dove si trovano questi pulsanti sulla scheda Black Pill:

Ricorda che devi fare questa operazione ogni volta che vuoi caricare un nuovo programma sulla Black Pill. Puoi iniziare provando il classico programma Blink:
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
Se tutto funziona, il LED blu sulla scheda dovrebbe lampeggiare ogni secondo. Altrimenti, dai un’occhiata alla sezione successiva.
Problemi
Programmare la Black Pill può essere complicato. In questa sezione discuteremo alcuni problemi comuni.
Dispositivo USB non riconosciuto
Il primo problema comune su Windows è l’errore “USB device not recognized”. Colleghi la Black Pill al computer via USB ma quando premi i pulsanti BOOT0 e NRST per programmare, compare il seguente messaggio di errore:

Apparentemente per le schede più vecchie questo può essere dovuto a un problema termico e se riscaldi un po’ il microcontrollore (premendo il pollice su di esso), l’errore potrebbe sparire. Non posso confermare che funzioni, perché a me non ha funzionato.
Altrimenti la raccomandazione è di collegare A10 a massa (G) e questo ha funzionato anche a me. L’immagine sotto mostra quale collegamento fare:

Se non vuoi perdere il pin A10 come GPIO per altri usi, puoi usare una resistenza di pull-down da 10 KΩ e il pin A10 rimane utilizzabile mentre la programmazione funziona comunque.
Dispositivo target non trovato
Se vedi il messaggio “Target Device not found” nel Serial Monitor, è perché hai dimenticato di premere i pulsanti BOOT0 e NRST.

Premi e tieni premuto “BOOT” poi premi e rilascia “NRST”. Questo mette la Black Pill in modalità programmazione. Devi farlo ogni volta che vuoi caricare un programma sulla Black Pill.
STM32CubeProgrammer non trovato
Se vedi il messaggio “STM32CubeProgrammer not found” nel Serial Monitor quando provi a caricare un programma sulla Black Pill, di solito è perché il programma STM32_Programmer_CLI.exe non è nel percorso di sistema.

Su Windows vai su Impostazioni, cerca “env” e clicca su “Modifica le variabili d’ambiente di sistema” come mostrato sotto:

Si aprirà una finestra dove puoi trovare le variabili d’ambiente. Devi aggiungere il percorso del programma STM32_Programmer_CLI.exe alla variabile Path. Selezionala e clicca su Edit..:

Poi premi “Nuovo” per aggiungere il percorso del programma “STM32_Programmer_CLI.exe” alla lista. Nel mio caso è “C:\Maet\Software\STM32CubeProgrammer\Bin”, come mostrato sotto. Ma il tuo sarà diverso!

Potrebbe essere necessario riavviare il computer per rendere attiva questa modifica del percorso di sistema. Dopo di che l’errore non dovrebbe più comparire.
Conclusioni
In questo articolo hai imparato come programmare la scheda STM32 Black Pill con l’Arduino IDE.
Se vuoi sapere come installare schede per altri microcontrollori comuni nell’Arduino IDE dai un’occhiata ai tutorial Programming the Pico W5 with Arduino IDE, How to Set Up a Raspberry Pi e A Beginner’s Guide To ESP32 Programming.
Se hai domande, sentiti libero di lasciarle nella sezione commenti.
Buon divertimento con il tinkering ; )

