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):
Download do STM32CubeMX

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

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:

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.

Selecionar MCU
Selecione o modelo do seu MCU, como STM32F103ZET6.

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.

Selecionar pino GPIO (LED)
Usamos um pino GPIO (PF8) aqui para controlar o acendimento e o apagamento do 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).

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.

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.

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.

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




