Introdução ao STM32L432: Visão geral, especificações, aplicações e exemplo de controle GPIO

Visão geral do STM32L432

O STM32L432 é um microcontrolador de consumo ultrabaixo desenvolvido pela STMicroelectronics. É baseado no núcleo ARM Cortex-M4 e foi projetado para sistemas embarcados com eficiência energética. Combinando poderosos recursos computacionais com baixo consumo de energia, é ideal para dispositivos IoT e aplicações portáteis.

Especificações

A série STM32L432 oferece as seguintes características técnicas principais:

  • Núcleo do processador:

    • Processador RISC ARM Cortex-M4 de 32 bits
    • Funciona a até 80 MHz com suporte para multiplicação de ciclo único e divisão por hardware
    • Unidade de ponto flutuante (FPU) integrada e instruções de processamento de sinal digital (DSP)
  • Memória:

    • 256 KB Flash (memória programável no chip)
    • 64 KB SRAM
    • Suporte para expansão de memória externa
  • Recursos de baixo consumo de energia:

    • Vários modos de baixo consumo de energia: Sleep, Stop e Standby
    • Consumo de energia dinâmico: apenas 37 µA/MHz em operação a 80 MHz
    • Corrente no modo de parada: aproximadamente 250 nA
    • Ampla faixa de tensão: 1,8 V a 3,6 V com gerenciamento de energia integrado
  • Interfaces e periféricos:

    • GPIO: até 51 pinos de entrada/saída de uso geral
    • Interfaces de comunicação: USART/UART, I2C, SPI, CAN, USB 2.0 (velocidade total)
    • Temporizadores: temporizadores de uso geral, de baixa potência e avançados (saída PWM)
    • ADC/DAC: ADC de 12 bits (16 canais) e DAC de 12 bits
    • Oscilador integrado e suporte para relógio em tempo real (RTC)
  • Opções de pacote:

    • Disponível em várias embalagens (por exemplo, LQFP, UFBGA, WLCSP) para atender a diferentes requisitos de tamanho.

Aplicação

Graças ao seu baixo consumo de energia e alto desempenho, o STM32L432 é amplamente utilizado nas seguintes áreas:

  • Dispositivos IoT:

    • Sistemas domésticos inteligentes (por exemplo, fechaduras inteligentes, sensores de temperatura e humidade)
    • Dispositivos vestíveis (por exemplo, rastreadores de fitness, equipamentos de monitorização da saúde)
  • Controle industrial:

    • Sistemas de aquisição e controle de dados
    • Medidores inteligentes e nós sensores
  • Dispositivos portáteis:

    • Dispositivos operados por bateria (por exemplo, instrumentos médicos portáteis)
    • Visores de baixo consumo (por exemplo, controladores de ecrãs e-ink)
  • Eletrônicos de consumo:

    • Brinquedos e robótica
    • Controles remotos inteligentes
  • Aplicações de segurança e criptografia:

    • Suporte a criptografia AES por hardware para comunicação segura

Vantagens

  • Design de baixo consumo de energia: Ideal para dispositivos alimentados por bateria que exigem vida útil prolongada.
  • Custo-benefício: oferece excelente desempenho a um preço competitivo.
  • Ecossistema de desenvolvimento robusto: compatível com STM32CubeMX, STM32CubeIDE e um conjunto abrangente de bibliotecas e ferramentas da ST.
  • Confiabilidade: Design de nível industrial, com alta tolerância à temperatura e ampla faixa de tensão operacional.

Controle GPIO usando a placa NUCLEO-L432KC

Neste exemplo, apresentaremos os princípios do circuito LED na placa STM32L432KC, criaremos um novo projeto usando o STM32CubeMX e dominaremos técnicas de programação para fazer o LED piscar.

NUCLEO L432KC board STM32L432KCU6
NUCLEO-L432KC board STM32L432KCU6

Materiais necessários

  • Placa de desenvolvimento NUCLEO-L432KC
  • Cabo USB para alimentação e comunicação
  • LED (se for necessário um LED externo)
  • Resistor (por exemplo, 220 Ω para LED externo)
  • Software STM32CubeMX
  • Ambiente de desenvolvimento como MDK5 (Keil) ou STM32CubeIDE

Passo 1: Criar um novo projeto usando o STM32CubeMX

Primeiro, selecione o MCU STM32L432KC e crie um novo projeto STM32CubeMX.

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

Em seguida, configuramos o oscilador para o STM32L432KC. A partir do esquema, o oscilador de cristal externo de baixa velocidade é conectado ao PC14 e ao PC15. Configure esses GPIOs no modo "Crystal/Ceramic Resonator" (Oscilador de cristal/cerâmico).

Configuration crystal ceramic resonator
Configuration crystal ceramic resonator

Explicação dos modos do oscilador: Fonte de

relógio BYPASS: O chip ignora o componente interno de acionamento do relógio e usa diretamente um sinal de relógio externo.

Ressonador de cristal/cerâmico: Utiliza um cristal passivo externo combinado com o circuito interno de acionamento do relógio do MCU, oferecendo maior precisão, mas exigindo tempo de inicialização.

Configure o GPIO para o LED. Defina PB3 como modo "GPIO_Output" com os seguintes parâmetros:

  • Saída push-pull
  • Saída padrão de nível baixo (LED desligado inicialmente)
  • Sem resistores pull-up ou pull-down

Configure o relógio. Para simplificar, defina o relógio do sistema para 80 MHz, permitindo que o STM32CubeMX configure automaticamente as definições necessárias.

Clock configuration 80 MHz
Clock configuration 80 MHz

Defina as preferências de geração de código na interface do projeto:

  • Dê um nome ao projeto e selecione a ferramenta de desenvolvimento (por exemplo, MDK5).
  • Habilite "Gerar inicialização periférica como um…" para criar arquivos separados .c para periféricos (por exemplo, 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

Depois de definir todas as opções do projeto, podemos gerar o projeto. Se for a primeira vez que você usa o STM32CubeMX, você precisa baixar os pacotes de software abaixo:

Download stm32cube software package
Download stm32cube software package

Em seguida, continue com a geração do código e, após a geração bem-sucedida, abra a pasta do projeto.

Successfully generated stm32l432kc project code
Successfully generated stm32l432kc project code

A pasta conterá os arquivos de projeto STM32CubeMX e MDK5, permitindo modificações convenientes no STM32CubeMX. Agora podemos iniciar o projeto "NUCLEO-L432KC(LED_Blinking)" na pasta MDK-ARM.

STM32CubeMX project folder
STM32CubeMX project folder

Passo 2: Escreva o código para fazer o LED piscar

Localize as funções necessárias nos arquivos STM32 HAL:

  • HAL_GPIO_TogglePin() e HAL_GPIO_WritePin() em stm32l4xx_hal_def.h.
  • HAL_Delay() em stm32l4xx_hal.h.

Implemente o código abaixo para fazer o LED piscar a 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 o código e certifique-se de que não há erros.

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

Passo 3: Configurar os parâmetros de flash

A placa NUCLEO-L432KC possui um depurador e programador STLINK/V2-1 integrado.

  • Configure o projeto para usar o ST-LINK para download.
  • Defina os parâmetros de flash conforme mostrado na interface STM32CubeMX e, em seguida, faça o download do programa.
Configure target options and download program for NUCLEO L432KC LED Blinking
Configure target options and download program for NUCLEO-L432KC (LED_Blinking)

Passo 4: Grave o programa

Grave o programa compilado na placa NUCLEO-L432KC e observe o LED piscando.

Download code to flash memory
Download code to flash memory

Compartilhar em:

Rolar para cima

Instant Quote