Skip to Content

Programma STM32 Black Pill con Arduino IDE

Programma STM32 Black Pill con Arduino IDE

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

Dupont wire set

Set di fili Dupont

Half_breadboard56a

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”:

Get Software Button for STM32CubeProgrammer
Pulsante Get Software per STM32CubeProgrammer

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

List of STM32CubeProgrammer software installations
Elenco delle installazioni software STM32CubeProgrammer

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:

License Agreement for STM32CubeProgrammer
Contratto di licenza per STM32CubeProgrammer

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

Dialog to create a MyST account
Finestra per creare un account MyST

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:

Installer for STM32CubeProgrammer
Installatore per STM32CubeProgrammer

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

File -> Preferences Menu
Menu File -> Preferences

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

Settings Tab in Preferences Dialog
Scheda Settings nella finestra delle Preferenze

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:

Additional Boards Manager URLs
URL aggiuntivi per il Boards Manager

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:

Install STM32 MCU based boards
Installa le schede STM32 MCU based boards

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

Installing STM32 core files
Installazione dei file core STM32

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:

Select Generic STM32 F4 Series board
Seleziona la scheda Generic STM32 F4 Series

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”:

Tools Menu
Menu Tools

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:


BOOT0 and NRST buttons on Black Pill board
Pulsanti BOOT0 e NRST 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:

Connecting A11 to G to fix flashing problem
Collegare A11 a G per risolvere il problema di programmazione

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.

"Target Device not found" error in Serial Monitor
Errore “Target Device not found” nel Serial Monitor

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.

"STM32CubeProgrammer not found" error in Serial Monitor
Errore “STM32CubeProgrammer not found” nel Serial Monitor

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

Settings for System Environment Variables
Impostazioni per le variabili d’ambiente di sistema

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..:

Dialog to edit Environment variables
Finestra per modificare le variabili d’ambiente

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!

Adding path to STM32_Programmer_CLI.exe program to system path
Aggiunta del percorso del programma STM32_Programmer_CLI.exe al percorso di sistema

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 ; )