Présentation du STM32L432
Le STM32L432 est un microcontrôleur à très faible consommation développé par STMicroelectronics. Il est basé sur le cœur ARM Cortex-M4 et est conçu pour les systèmes embarqués à faible consommation d'énergie. Alliant de puissantes capacités de calcul à une faible consommation d'énergie, il est idéal pour les appareils IoT et les applications portables.
Spécifications
La série STM32L432 offre les principales caractéristiques techniques suivantes :
Cœur du processeur :
- Processeur RISC 32 bits ARM Cortex-M4
- Fonctionne jusqu'à 80 MHz avec prise en charge de la multiplication en un seul cycle et de la division matérielle
- Unité à virgule flottante (FPU) intégrée et instructions de traitement numérique du signal (DSP)
Mémoire :
- 256 Ko de mémoire Flash (mémoire programmable sur puce)
- 64 Ko de SRAM
- Prise en charge de l'extension de mémoire externe
Fonctions à faible consommation :
- Plusieurs modes de faible consommation : veille, arrêt et veille prolongée
- Consommation d'énergie dynamique : seulement 37 µA/MHz à une fréquence de 80 MHz
- Courant en mode arrêt : environ 250 nA
- Large plage de tension : 1,8 V à 3,6 V avec gestion de l'alimentation intégrée
Interfaces et périphériques :
- GPIO : jusqu'à 51 broches d'entrée/sortie à usage général
- Interfaces de communication : USART/UART, I2C, SPI, CAN, USB 2.0 (Full Speed)
- Minuteries : minuteries à usage général, à faible consommation et avancées (sortie PWM)
- ADC/DAC : ADC 12 bits (16 canaux) et DAC 12 bits
- Oscillateur intégré et prise en charge de l'horloge temps réel (RTC)
Options d'emballage :
- Disponible dans différents boîtiers (par exemple, LQFP, UFBGA, WLCSP) pour répondre à différentes exigences de taille.
Application
Grâce à sa faible consommation d'énergie et ses performances élevées, le STM32L432 est largement utilisé dans les domaines suivants :
Appareils IoT :
- Systèmes domotiques (par exemple, serrures intelligentes, capteurs de température et d'humidité)
- Appareils portables (par exemple, trackers d'activité physique, équipements de surveillance de la santé)
Contrôle industriel :
- Systèmes d'acquisition et de contrôle de données
- Compteurs intelligents et nœuds de capteurs
Appareils portables :
- Appareils fonctionnant sur batterie (par exemple, instruments médicaux portables)
- Écrans à faible consommation d'énergie (par exemple, contrôleurs d'écrans à encre électronique)
Électronique grand public :
- Jouets et robotique
- Télécommandes intelligentes
Applications de sécurité et de cryptage :
- Prise en charge du cryptage AES matériel pour une communication sécurisée
Avantages
- Conception à faible consommation d'énergie : idéal pour les appareils alimentés par batterie nécessitant une durée de vie prolongée.
- Rentable : offre d'excellentes performances à un prix compétitif.
- Écosystème de développement robuste : pris en charge par STM32CubeMX, STM32CubeIDE et une suite complète de bibliothèques et d'outils de ST.
- Fiabilité : conception de qualité industrielle, avec une tolérance élevée à la température et une large plage de tension de fonctionnement.
Contrôle GPIO à l'aide de la carte NUCLEO-L432KC
Dans cet exemple, nous allons présenter les principes du circuit LED sur la carte STM32L432KC, créer un nouveau projet à l'aide de STM32CubeMX et maîtriser les techniques de programmation permettant de faire clignoter une LED.
Matériel requis
- Carte de développement NUCLEO-L432KC
- Câble USB pour l'alimentation et la communication
- LED (si une LED externe est nécessaire)
- Résistance (par exemple, 220 Ω pour une LED externe)
- Logiciel STM32CubeMX
- Environnement de développement tel que MDK5 (Keil) ou STM32CubeIDE
Étape 1 : Créer un nouveau projet à l'aide de STM32CubeMX
Dans un premier temps, veuillez sélectionner le microcontrôleur STM32L432KC et créer un nouveau projet STM32CubeMX.
Ensuite, nous configurons l'oscillateur pour STM32L432KC. D'après le schéma, l'oscillateur à quartz externe à faible vitesse est connecté à PC14 et PC15. Configurez ces GPIO en mode « Crystal/Ceramic Resonator » (Oscillateur à quartz/résonateur céramique).
Explication des modes d'oscillateur : Source
d'horloge BYPASS : la puce contourne le composant interne d'entraînement d'horloge et utilise directement un signal d'horloge externe. Résonateur
à cristal/céramique : utilise un cristal passif externe combiné au circuit interne d'entraînement d'horloge du microcontrôleur, offrant une plus grande précision mais nécessitant un temps de démarrage.
Configurez le GPIO pour la LED. Réglez PB3 en mode « GPIO_Output » avec les paramètres suivants :
- Sortie push-pull
- Sortie de niveau bas par défaut (LED éteinte initialement)
- Pas de résistances pull-up ou pull-down
Configurez l'horloge. Pour simplifier, réglez l'horloge système sur 80 MHz, ce qui permettra à STM32CubeMX de configurer automatiquement les paramètres requis.
Définissez les préférences de génération de code dans l'interface Projet :
- Nommez le projet et sélectionnez l'outil de développement (par exemple, MDK5).
- Activez « Générer l'initialisation des périphériques en tant que… » pour créer des fichiers séparés
.cpour les périphériques (par exemple, GPIO, I2C, SPI).
Après avoir défini toutes les options du projet, nous pouvons générer le projet. Si c'est la première fois que vous utilisez STM32CubeMX, vous devez télécharger les progiciels suivants :
Ensuite, continuez la génération du code et, une fois celle-ci terminée, ouvrez le dossier du projet.
Le dossier contiendra à la fois les fichiers de projet STM32CubeMX et MDK5, ce qui permettra d'effectuer facilement des modifications dans STM32CubeMX. Nous pouvons maintenant lancer le projet « NUCLEO-L432KC(LED_Blinking) » dans le dossier MDK-ARM.
Étape 2 : Écrire le code pour faire clignoter la LED
Recherchez les fonctions requises dans les fichiers STM32 HAL :
HAL_GPIO_TogglePin()etHAL_GPIO_WritePin()dansstm32l4xx_hal_def.h.HAL_Delay()dansstm32l4xx_hal.h.
Implémentez le code ci-dessous pour faire clignoter la LED toutes les 2 secondes :
/* 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 */
Compilez le code et assurez-vous qu'il n'y a pas d'erreurs.
Étape 3 : Configurer les paramètres de clignotement
La carte NUCLEO-L432KC dispose d'un débogueur et programmateur STLINK/V2-1 intégré.
- Configurez le projet pour utiliser ST-LINK pour le téléchargement.
- Définissez les paramètres de flashage comme indiqué dans l'interface STM32CubeMX, puis téléchargez le programme.




