Comenzando con STM32L432: Descripción general, especificaciones, aplicaciones y ejemplo de control GPIO

Descripción general de STM32L432

El STM32L432 es un microcontrolador de ultra bajo consumo desarrollado por STMicroelectronics. Está basado en el núcleo ARM Cortex-M4 y está diseñado para sistemas embebidos de bajo consumo. Combinando potentes capacidades computacionales con un bajo consumo de energía, es ideal para dispositivos IoT y aplicaciones portátiles.

Especificaciones

La serie STM32L432 ofrece las siguientes características técnicas clave:

  • Núcleo del procesador:

    • Procesador RISC de 32 bits ARM Cortex-M4
    • Funciona a hasta 80 MHz con soporte de multiplicación de un solo ciclo y división por hardware
    • Unidad de punto flotante (FPU) integrada e instrucciones de procesamiento de señal digital (DSP)
  • Memoria:

    • 256 KB Flash (memoria programable en chip)
    • 64 KB SRAM
    • Soporte para expansión de memoria externa
  • Características de bajo consumo:

    • Múltiples modos de bajo consumo: Sueño, Detención y Espera
    • Consumo dinámico de energía: solo 37 µA/MHz a 80 MHz
    • Corriente en modo de detención: aproximadamente 250 nA
    • Amplio rango de voltaje: de 1.8V a 3.6V con gestión de energía incorporada
  • Interfaces y periféricos:

    • GPIO: Hasta 51 pines de entrada/salida de propósito general
    • Interfaces de comunicación: USART/UART, I2C, SPI, CAN, USB 2.0 (Velocidad Completa)
    • Temporizadores: Temporizadores de propósito general, de bajo consumo y avanzados (salida PWM)
    • ADC/DAC: ADC de 12 bits (16 canales) y DAC de 12 bits
    • Oscilador incorporado y soporte de reloj de tiempo real (RTC)
  • Opciones de encapsulado:

    • Disponible en varios encapsulados (por ejemplo, LQFP, UFBGA, WLCSP) para adaptarse a diferentes requisitos de tamaño.

Aplicación

Gracias a su bajo consumo de energía y alto rendimiento, el STM32L432 se utiliza ampliamente en los siguientes campos:

  • Dispositivos IoT:

    • Sistemas de hogar inteligente (por ejemplo, cerraduras inteligentes, sensores de temperatura y humedad)
    • Dispositivos portátiles (por ejemplo, rastreadores de actividad física, equipos de monitoreo de salud)
  • Control Industrial:

    • Sistemas de adquisición y control de datos
    • Medidores inteligentes y nodos de sensores
  • Dispositivos Portátiles:

    • Dispositivos alimentados por batería (por ejemplo, instrumentos médicos portátiles)
    • Pantallas de bajo consumo (por ejemplo, controladores de pantalla de tinta electrónica)
  • Electrónica de Consumo:

    • Juguetes y robótica
    • Controles remotos inteligentes
  • Aplicaciones de Seguridad y Cifrado:

    • Soporte de cifrado AES por hardware para una comunicación segura

Ventajas

  • Diseño de bajo consumo: Ideal para dispositivos alimentados por batería que requieren tiempos operativos prolongados.
  • Rentable: Proporciona un excelente rendimiento a un precio competitivo.
  • Ecosistema de desarrollo robusto: Compatible con STM32CubeMX, STM32CubeIDE y una completa suite de bibliotecas y herramientas de ST.
  • Fiabilidad: Diseño de grado industrial, con alta tolerancia a la temperatura y amplio rango de voltaje operativo.

Control GPIO usando la placa NUCLEO-L432KC

En este ejemplo, introduciremos los principios del circuito LED en la placa STM32L432KC, crearemos un nuevo proyecto usando STM32CubeMX y dominaremos las técnicas de programación para lograr el parpadeo del LED.

NUCLEO L432KC board STM32L432KCU6
NUCLEO-L432KC board STM32L432KCU6

Materiales requeridos

  • Placa de desarrollo NUCLEO-L432KC
  • Cable USB para alimentación y comunicación
  • LED (si se necesita un LED externo)
  • Resistencia (por ejemplo, 220Ω para un LED externo)
  • Software STM32CubeMX
  • Entorno de desarrollo como MDK5 (Keil) o STM32CubeIDE

Paso 1: Crear un nuevo proyecto usando STM32CubeMX

Primero, seleccione el MCU STM32L432KC y cree un nuevo proyecto STM32CubeMX.

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

A continuación, configuramos el oscilador para STM32L432KC. Desde el esquema, el oscilador de baja velocidad externo está conectado a PC14 y PC15. Configure estos GPIO en modo «Crystal/Ceramic Resonator».

Configuration crystal ceramic resonator
Configuration crystal ceramic resonator

Explicación de los modos del oscilador:

Fuente de reloj BYPASS: El chip omite el componente de control del reloj interno y utiliza directamente una señal de reloj externa.

Cristal/Resonador cerámico: Utiliza un cristal pasivo externo combinado con el circuito de control del reloj interno del MCU, ofreciendo mayor precisión pero requiriendo tiempo de arranque.

Configure el GPIO para el LED. Establezca PB3 como modo «GPIO_Output» con los siguientes parámetros:

  • Salida push-pull
  • Salida de bajo nivel predeterminada (LED apagado inicialmente)
  • Sin resistencias pull-up o pull-down

Configure el reloj. Para simplificar, establezca el reloj del sistema a 80 MHz, permitiendo que STM32CubeMX configure automáticamente la configuración requerida.

Clock configuration 80 MHz
Clock configuration 80 MHz

Establezca las preferencias de generación de código en la interfaz de Proyecto:

  • Asigne un nombre al proyecto y seleccione la herramienta de desarrollo (por ejemplo, MDK5).
  • Habilite «Generar inicialización periférica como» para crear archivos .c separados para los periféricos (por ejemplo, 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

Después de configurar todas las opciones del proyecto, podemos generar el proyecto. Si es la primera vez que usa STM32CubeMX, deberá descargar los paquetes de software a continuación:

Download stm32cube software package
Download stm32cube software package

A continuación, continúe con la generación del código y, después de una generación exitosa, abra la carpeta del proyecto.

Successfully generated stm32l432kc project code
Successfully generated stm32l432kc project code

La carpeta contendrá tanto los archivos del proyecto STM32CubeMX como MDK5, lo que permitirá modificaciones convenientes en STM32CubeMX. Ahora podemos iniciar el proyecto «NUCLEO-L432KC(LED_Blinking)» en la carpeta MDK-ARM.

STM32CubeMX project folder
STM32CubeMX project folder

Paso 2: Escribir el código de parpadeo del LED

Localice las funciones requeridas en los archivos HAL de STM32:

  • HAL_GPIO_TogglePin() y HAL_GPIO_WritePin() en stm32l4xx_hal_def.h.
  • HAL_Delay() en stm32l4xx_hal.h.

Implemente el código a continuación para hacer parpadear el LED cada 2 segundos:

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 */

				
			

Compile el código y asegúrese de que no haya errores.

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

Paso 3: Configurar los parámetros de flasheo

La placa NUCLEO-L432KC tiene un depurador y programador STLINK/V2-1 integrado.

  • Configure el proyecto para usar ST-LINK para descargar.
  • Establezca los parámetros de flasheo como se muestra en la interfaz de STM32CubeMX, luego descargue el programa.
Configure target options and download program for NUCLEO L432KC LED Blinking
Configure target options and download program for NUCLEO-L432KC (LED_Blinking)

Paso 4: Flashear el programa

Flashee el programa compilado en la placa NUCLEO-L432KC y observe el LED parpadeando.

Download code to flash memory
Download code to flash memory

Compartir en:

Scroll al inicio

Cotización