STM32CubeMX è uno strumento di configurazione grafica per chip STM32 lanciato da STMicroelectronics (ST). Il software è efficiente e conveniente. Può ottenere molte configurazioni tramite operazioni semplici, consente l’uso di wizard grafici per generare codice C e supporta MDK, IAR For ARM, TrueStudio e altre toolchain.
Introduzione a STM32CubeMX
STM32CubeMX è uno strumento di configurazione grafica per chip STM32 ampiamente utilizzato. Integra la selezione del chip, l’assegnazione dei pin e la configurazione delle funzioni, la configurazione del middleware, la configurazione dell’orologio, il codice iniziale e le funzioni del progetto.
STM32 supporta una vasta gamma di middleware open source e di proprietà intellettuale indipendente di ST, come FreeRTOS, FatFS, mbedTLS dalla comunità open source; lo stack di protocolli host e dispositivo USB di ST, TouchGFX, ecc.
Vantaggi di STM32CubeMX
- Copre quasi tutti i chip della serie STM32;
- Non è necessario configurare parametri complessi di varie periferiche;
- Supporta l’uso di wizard grafici per generare codice di inizializzazione;
- Supporta più toolchain, come MDK, IAR For ARM, TrueStudio, ecc.
Download e installazione di STM32CubeMX
Prima di installare STM32CubeMX, assicurati che il tuo computer abbia già JRE (Java Runtime Environment):
Download STM32CubeMX

Installazione di STM32CubeMX
La versione più recente ora (2023) è V6.9.2. I sistemi che supportano l’installazione sono i seguenti:
- Windows: 7, 8, 10 (32 64 bit)
- Linux: RedHat, Ubuntu e Fedora (32 64-bit)
- macOS: OS X El Capitan e Sierra

Installa la libreria HAL
La libreria firmware STM32 HAL sta per Hardware Abstraction Layer. È il più recente livello di astrazione del software embedded lanciato da ST Company per STM32 MCU, con l’obiettivo di ottenere una migrazione senza soluzione di continuità tra gli MCU della serie STM32.
Quando è stata lanciata la libreria HAL, sono stati aggiunti anche molti middleware di terze parti, tra cui RTOS, USB, TCP/IP e grafica.
La libreria HAL ha due metodi: installazione online e installazione offline.
Qui mostriamo il primo modo:
Apri il software STM32CubeMX installato e accedi all’interfaccia di gestione della libreria (Help -> Manage embedded software packages). Quindi seleziona la libreria HAL che desideri installare e fai clic su “Installa ora” fino al completamento dell’installazione. Come mostrato nella seguente animazione:

Come creare un progetto STM32CubeMX?
In questo tutorial, fornisco un semplice esempio di lampeggio del LED per i principianti.
Strumenti richiesti
- STM32CubeMX e libreria HAL;
- Una scheda di sviluppo;
- Un downloader ST-Link;
- IDE come: MDK-ARM, EWARM, TureSTUDIO, SW4STM32, ecc.
Crea un nuovo progetto
Apri il selettore MCU
Apri STM32CubeMX e accedi al selettore MCU.

Seleziona MCU
Seleziona il tuo modello MCU, ad esempio STM32F103ZET6.

Seleziona la sorgente di clock
Se scegli di utilizzare un clock esterno ad alta velocità (HSE), devi configurare RCC in System Core (come mostrato di seguito). Se utilizzi il clock interno predefinito (HSI), questo passaggio può essere saltato.

Seleziona il pin GPIO (LED)
Utilizziamo un pin GPIO (PF8) qui per controllare l’accensione e lo spegnimento del LED.

Configura l'orologio
L’orologio predefinito è l’orologio interno ad alta velocità (HSI). Qui, lo cambiamo all’orologio esterno ad alta velocità (HSE).

Project Manager
Qui, puoi personalizzare le impostazioni del tuo progetto: nome del progetto, posizione del progetto, Toolchain/IDE e altro.

Genera Codice
Le operazioni di cui sopra completano un progetto semplice con una configurazione di base. Devi solo fare clic su “Genera Codice”. Dopo che il codice è stato generato correttamente, puoi aprire il progetto. Prima di aprire il tuo progetto, devi installare Keil’s MDK ARM.

Aggiungi Codice Applicativo
Il codice generato non è abbastanza completo e dobbiamo aggiungere il nostro codice applicativo. Come mostrato nella figura seguente, inseriamo un frammento di codice lampeggiante LED in main.c e il LED sulla scheda di sviluppo lampeggerà una volta ogni 1000 ms.

Nota:
- Il ritardo di 1000 ms richiede che il tuo orologio sia configurato correttamente.
- I pin corrispondenti al LED devono essere coerenti con il tuo sviluppo effettivo.
- Dopo aver compilato e scaricato il progetto MDK-ARM generato, è necessario ripristinarlo di nuovo in modo che possa essere eseguito.




