Tutorial STM32CubeMX para iniciantes

STM32CubeMX é uma ferramenta de configuração gráfica do chip STM32 lançada pela STMicroelectronics (ST). O software é eficiente e prático. Ele pode realizar várias configurações por meio de operações simples, permite o uso de assistentes gráficos para gerar código em linguagem C e é compatível com MDK, IAR For ARM, TrueStudio e outras cadeias de ferramentas.

Introdução ao STM32CubeMX

O STM32CubeMX é uma ferramenta de configuração gráfica do chip STM32 amplamente utilizada. Ele integra seleção de chip, atribuição de pinos e configuração de funções, configuração de middleware, configuração de clock, código inicial e funções do projeto.

O STM32 suporta uma grande variedade de middleware de código aberto e propriedade intelectual independente da ST, como FreeRTOS, FatFS, mbedTLS da comunidade de código aberto; pilha de protocolos de host e dispositivo USB da própria ST, TouchGFX, etc.

Benefícios do STM32CubeMX

  • Abrange quase todos os chips da série STM32;
  • Não é necessário configurar parâmetros complexos de vários periféricos;
  • Suporta o uso de assistentes gráficos para gerar código de inicialização;
  • Suporta várias cadeias de ferramentas, como MDK, IAR For ARM, TrueStudio, etc.

Download e instalação do STM32CubeMX

Antes de instalar o STM32CubeMX, certifique-se de que o seu computador já possui o JRE (Java Runtime Environment):

https://www.java.com/en/download/manual.jsp

Download do STM32CubeMX

STM32CubeMX Software Download
STM32CubeMX Software Download

Instalação do STM32CubeMX

A versão mais recente agora (2023) é a V6.9.2. Os sistemas que suportam a instalação são os seguintes:

  • Windows: 7, 8, 10 (32 e 64 bits)
  • Linux: RedHat, Ubuntu e Fedora (32 e 64 bits)
  • macOS: OS X El Capitan e Sierra
STM32CubeMX Installation Process
STM32CubeMX Installation Process

Instalar a biblioteca HAL

A biblioteca de firmware STM32 HAL significa Hardware Abstraction Layer (Camada de Abstração de Hardware). É a mais recente camada de abstração de software incorporado lançada pela ST Company para o MCU STM32, com o objetivo de alcançar uma migração perfeita entre os MCUs da série STM32.

Quando a biblioteca HAL foi lançada, muitos middlewares de terceiros também foram adicionados, incluindo RTOS, USB, TCP/IP e gráficos.

A biblioteca HAL possui dois métodos: instalação online e instalação offline.

Aqui mostramos a primeira maneira:

Abra o software STM32CubeMX instalado e entre na interface de gerenciamento da biblioteca (Ajuda -> Gerenciar pacotes de software incorporados). Em seguida, marque a biblioteca HAL que deseja instalar e clique em "Instalar agora" até que a instalação seja concluída com sucesso. Conforme mostrado na animação a seguir:

HAL Installation
HAL Installation

Como criar um projeto STM32CubeMX?

Neste tutorial, apresento um exemplo simples de LED piscando para iniciantes.

Ferramentas necessárias

  • STM32CubeMX e biblioteca HAL;
  • Uma placa de desenvolvimento;
  • Um downloader ST-Link;
  • IDE, como: MDK-ARM, EWARM, TureSTUDIO, SW4STM32, etc.

Criar um novo projeto

Seletor MCU aberto

Abra o STM32CubeMX e entre no seletor MCU.

Access to MCU Selector
Access to MCU Selector

Selecionar MCU

Selecione o modelo do seu MCU, como STM32F103ZET6.

Selector MCU to Start a New Project
Selector MCU to Start a New Project

Selecionar fonte do relógio

Se você optar por usar um relógio externo de alta velocidade (HSE), será necessário configurar o RCC no System Core (conforme mostrado abaixo). Se estiver usando o relógio interno padrão (HSI), esta etapa pode ser ignorada.

High Speed Clock (HSE) _ RCC Mode and Configuration
High Speed Clock (HSE) _ RCC Mode and Configuration

Selecionar pino GPIO (LED)

Usamos um pino GPIO (PF8) aqui para controlar o acendimento e o apagamento do LED.

Set PF8 as GPIO _Output to Control LED
Set PF8 as GPIO _Output to Control LED

Configurar relógio

O relógio padrão é o relógio interno de alta velocidade (HSI). Aqui, nós o alteramos para o relógio externo de alta velocidade (HSE).

High Speed Clock (HSE) Configuration
High Speed Clock (HSE) Configuration

Gerente de Projetos

Aqui, você pode personalizar as configurações do seu projeto: nome do projeto, localização do projeto, Toolchain/IDE e muito mais.

Project Settings_Project Manager - STM32CubeMX
Project Settings_Project Manager - STM32CubeMX

Gerar código

As operações acima completam um projeto simples com configuração básica. Você só precisa clicar em "Gerar código". Após o código ser gerado com sucesso, você pode abrir o projeto. Antes de abrir seu projeto, você precisa instalar o MDK ARM da Keil.

Code Generator Project Manager STM32CubeMX
Code Generator_Project Manager - STM32CubeMX

Adicionar código do aplicativo

O código gerado não está completo o suficiente e precisamos adicionar nosso próprio código de aplicação. Conforme mostrado na figura abaixo, inserimos um trecho de código de piscar LED no main.c, e o LED na placa de desenvolvimento piscará uma vez a cada 1000 ms.

LED Blinking Code for STM32 MCU Project
LED Blinking Code for STM32 MCU Project

Nota:

  1. O atraso de 1000 ms requer que o seu relógio esteja configurado corretamente.
  2. Os pinos correspondentes ao LED precisam estar consistentes com o seu desenvolvimento real.
  3. Após compilar e baixar o projeto MDK-ARM gerado, você precisa reiniciá-lo novamente para que ele possa ser executado.

Verificações técnicas para STM32CubeMX configuration for reliable PCB firmware

Antes de usar STM32CubeMX configuration for reliable PCB firmware em PCB, firmware, reparo ou validação, confirme os detalhes que normalmente determinam se o projeto funciona de forma confiável.

Checklist de projeto e diagnóstico

ÁreaO que verificarPor que importa
Clock treeValidate HSE, LSE, PLL, bus prescalers, and peripheral clocks against the actual schematicGenerated code is only reliable when oscillator assumptions match the PCB
Pin muxResolve ADC, timer, UART, SPI, I2C, USB, and debug conflicts before layout releaseCubeMX can expose conflicts that are expensive after fabrication
Generated projectRecord HAL version, middleware, interrupt priorities, and initialization orderVersion drift can change firmware behavior during maintenance

Essas verificações conectam a intenção de busca sobre STM32CubeMX tutorial a decisões reais de placa, seleção de componentes e análise de falhas.

Compartilhar em:

Rolar para cima

Cotação instantânea

Instant Quote