Premiers pas avec le STM32L432 : présentation, spécifications, applications et exemple de contrôle GPIO

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.

NUCLEO L432KC board STM32L432KCU6
NUCLEO-L432KC board STM32L432KCU6

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.

Create a new project from MCU STM32L432KC
Create a new project from MCU STM32L432KC

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

Configuration crystal ceramic resonator
Configuration crystal ceramic resonator

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.

Clock configuration 80 MHz
Clock configuration 80 MHz

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 .c pour les périphériques (par exemple, GPIO, I2C, SPI).
STM32CubeMX project settings name location toolchain IDE
STM32CubeMX project settings (name, location, toolchain IDE)
Setting code generator on STM32CubeMX
Setting code generator on STM32CubeMX

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 :

Download stm32cube software package
Download stm32cube software package

Ensuite, continuez la génération du code et, une fois celle-ci terminée, ouvrez le dossier du projet.

Successfully generated stm32l432kc project code
Successfully generated stm32l432kc project code

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.

STM32CubeMX project folder
STM32CubeMX project folder

Étape 2 : Écrire le code pour faire clignoter la LED

Recherchez les fonctions requises dans les fichiers STM32 HAL :

  • HAL_GPIO_TogglePin() et HAL_GPIO_WritePin() dans stm32l4xx_hal_def.h.
  • HAL_Delay() dans stm32l4xx_hal.h.

Implémentez le code ci-dessous pour faire clignoter la LED toutes les 2 secondes :

Add led blinking code to main.c file
Add led blinking code to main.c file
				
					/* 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.

Rebuild all target files for project NUCLEO L432KCLED Blinking
Rebuild all target files for project NUCLEO-L432KC(LED_Blinking)

É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.
Configure target options and download program for NUCLEO L432KC LED Blinking
Configure target options and download program for NUCLEO-L432KC (LED_Blinking)

Étape 4 : Flasher le programme

Flash le programme compilé sur la carte NUCLEO-L432KC et observe le clignotement de la LED.

Download code to flash memory
Download code to flash memory

Part à:

Retour en haut

Instant Quote