Panoramica di STM32L432
STM32L432 è un microcontrollore a bassissimo consumo sviluppato da STMicroelectronics. È basato sul core ARM Cortex-M4 ed è progettato per sistemi embedded a basso consumo energetico. Combinando potenti capacità di calcolo con un basso consumo energetico, è ideale per dispositivi IoT e applicazioni portatili.
Specifiche
La serie STM32L432 offre le seguenti caratteristiche tecniche principali:
Core del processore:
- Processore RISC a 32 bit ARM Cortex-M4
- Funziona fino a 80 MHz con supporto per moltiplicazione a ciclo singolo e divisione hardware
- Unità a virgola mobile (FPU) integrata e istruzioni di elaborazione del segnale digitale (DSP)
Memoria:
- 256 KB di Flash (memoria programmabile on-chip)
- 64 KB di SRAM
- Supporto per l’espansione della memoria esterna
Funzionalità a basso consumo:
- Modalità a basso consumo multiple: Sleep, Stop e Standby
- Consumo dinamico di energia: solo 37 µA/MHz a 80 MHz
- Corrente in modalità Stop: circa 250 nA
- Ampio intervallo di tensione: da 1,8 V a 3,6 V con gestione dell’alimentazione integrata
Interfacce e periferiche:
- GPIO: fino a 51 pin di input/output generici
- Interfacce di comunicazione: USART/UART, I2C, SPI, CAN, USB 2.0 (Full Speed)
- Timer: timer generici, a basso consumo e avanzati (uscita PWM)
- ADC/DAC: ADC a 12 bit (16 canali) e DAC a 12 bit
- Supporto integrato per oscillatore e orologio in tempo reale (RTC)
Opzioni di confezionamento:
- Disponibile in vari confezionamenti (ad esempio, LQFP, UFBGA, WLCSP) per soddisfare diversi requisiti di dimensioni.
Applicazione
Grazie al suo basso consumo energetico e alle elevate prestazioni, STM32L432 è ampiamente utilizzato nei seguenti campi:
Dispositivi IoT:
- Sistemi domestici intelligenti (ad esempio, serrature intelligenti, sensori di temperatura e umidità)
- Dispositivi indossabili (ad esempio, fitness tracker, apparecchiature per il monitoraggio della salute)
Controllo industriale:
- Sistemi di acquisizione dati e controllo
- Contatori intelligenti e nodi sensore
Dispositivi portatili:
- Dispositivi alimentati a batteria (ad esempio, strumenti medici portatili)
- Display a basso consumo (ad esempio, controller dello schermo e-ink)
Elettronica di consumo:
- Giocattoli e robotica
- Telecomandi intelligenti
Applicazioni di sicurezza e crittografia:
- Supporto per la crittografia hardware AES per comunicazioni sicure
Vantaggi
- Basso consumo energetico: Ideale per dispositivi alimentati a batteria che richiedono tempi operativi prolungati.
- Conveniente: Fornisce prestazioni eccellenti a un prezzo competitivo.
- Ecosistema di sviluppo robusto: Supportato da STM32CubeMX, STM32CubeIDE e una suite completa di librerie e strumenti di ST.
- Affidabilità: Design di livello industriale, con elevata tolleranza alla temperatura e ampia gamma di tensione di funzionamento.
Controllo GPIO utilizzando la scheda NUCLEO-L432KC
In questo esempio, introdurremo i principi del circuito LED sulla scheda STM32L432KC, creeremo un nuovo progetto utilizzando STM32CubeMX e padroneggeremo le tecniche di programmazione per ottenere l’intermittenza del LED.
Materiali necessari
- Scheda di sviluppo NUCLEO-L432KC
- Cavo USB per alimentazione e comunicazione
- LED (se è necessario un LED esterno)
- Resistore (ad esempio, 220Ω per LED esterno)
- Software STM32CubeMX
- Ambiente di sviluppo come MDK5 (Keil) o STM32CubeIDE
Passaggio 1: crea un nuovo progetto utilizzando STM32CubeMX
Innanzitutto, seleziona il MCU STM32L432KC e crea un nuovo progetto STM32CubeMX.
Successivamente, configuriamo l’oscillatore per STM32L432KC. Dallo schema, l’oscillatore a cristallo a bassa velocità esterna è collegato a PC14 e PC15. Configura questi GPIO in modalità “Cristallo/Risonatore ceramico”.
Spiegazione delle modalità dell'oscillatore:
BYPASS Sorgente di clock: il chip bypassa il componente di pilotaggio del clock interno e utilizza direttamente un segnale di clock esterno.
Cristallo/Risonatore ceramico: utilizza un cristallo passivo esterno combinato con il circuito di pilotaggio del clock interno del MCU, offrendo una maggiore precisione ma richiedendo un tempo di avvio.
Configura il GPIO per il LED. Imposta PB3 come modalità “GPIO_Output” con i seguenti parametri:
- Uscita push-pull
- Uscita a basso livello predefinita (LED inizialmente spento)
- Nessun resistore pull-up o pull-down
Configura il clock. Per semplicità, imposta il clock di sistema a 80 MHz, consentendo a STM32CubeMX di configurare automaticamente le impostazioni richieste.
Imposta le preferenze di generazione del codice nell’interfaccia Progetto:
- Assegna un nome al progetto e seleziona lo strumento di sviluppo (ad esempio, MDK5).
- Abilita “Genera inizializzazione periferica come” per creare file
.cseparati per le periferiche (ad esempio, GPIO, I2C, SPI).
Dopo aver impostato tutte le opzioni del progetto, possiamo generare il progetto. Se è la prima volta che utilizzi STM32CubeMX, devi scaricare i pacchetti software come di seguito:
Successivamente, continua con la generazione del codice e, dopo una generazione riuscita, apri la cartella del progetto.
La cartella conterrà sia i file di progetto STM32CubeMX che MDK5, consentendo modifiche convenienti in STM32CubeMX. Ora possiamo avviare il progetto “NUCLEO-L432KC(LED_Blinking)” nella cartella MDK-ARM.
Passaggio 2: scrivi il codice di intermittenza del LED
Individua le funzioni richieste nei file HAL STM32:
HAL_GPIO_TogglePin()eHAL_GPIO_WritePin()instm32l4xx_hal_def.h.HAL_Delay()instm32l4xx_hal.h.
Implementa il codice sottostante per far lampeggiare il LED ogni 2 secondi:
/* USER CODE BEGIN WHILE */
while (1)
{
// Method 1: Using HAL_GPIO_TogglePin()
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_3);
HAL_Delay(2000);
// Method 2: Using HAL_GPIO_WritePin()
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_RESET); // Turn off for 2 seconds
HAL_Delay(2000);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET); // Turn on for 2 seconds
HAL_Delay(2000);
}
/* USER CODE END WHILE */
Compila il codice e assicurati che non ci siano errori.
Passo 3: Configura i parametri di programmazione
La scheda NUCLEO-L432KC dispone di un debugger e programmatore STLINK/V2-1 integrato.
- Configura il progetto per utilizzare ST-LINK per il download.
- Imposta i parametri di programmazione come mostrato nell’interfaccia STM32CubeMX, quindi scarica il programma.




