STM32CubeMX es una herramienta de configuración gráfica para chips STM32 lanzada por STMicroelectronics (ST). El software es eficiente y práctico. Permite realizar numerosas configuraciones mediante operaciones sencillas, utiliza asistentes gráficos para generar código en lenguaje C y es compatible con MDK, IAR For ARM, TrueStudio y otras cadenas de herramientas.
Introducción a STM32CubeMX
STM32CubeMX es una herramienta de configuración gráfica de chips STM32 muy utilizada. Integra la selección de chips, la asignación de pines y la configuración de funciones, la configuración de middleware, la configuración del reloj, el código inicial y las funciones del proyecto.
STM32 es compatible con una gran cantidad de middleware de código abierto y propiedad intelectual independiente de ST, como FreeRTOS, FatFS y mbedTLS de la comunidad de código abierto; la pila de protocolos de dispositivo y host USB propia de ST, TouchGFX, etc.
Ventajas de STM32CubeMX
- Cubre casi todos los chips de la serie STM32;
- No es necesario configurar parámetros complejos de diversos periféricos;
- Admite el uso de asistentes gráficos para generar código de inicialización.
- Admite múltiples cadenas de herramientas, como MDK, IAR For ARM, TrueStudio, etc.
Descarga e instalación de STM32CubeMX
Antes de instalar STM32CubeMX, asegúrese de que su ordenador ya tiene JRE (Java Runtime Environment):
Descargar STM32CubeMX

Instalación de STM32CubeMX
La última versión actual (2023) es la V6.9.2. Los sistemas compatibles con la instalación son los siguientes:
- Windows: 7, 8, 10 (32 y 64 bits)
- Linux: RedHat, Ubuntu y Fedora (32 y 64 bits)
- macOS: OS X El Capitan y Sierra

Instalar la biblioteca HAL
La biblioteca de firmware STM32 HAL significa «Hardware Abstraction Layer» (capa de abstracción de hardware). Es la última capa de abstracción de software integrado lanzada por ST Company para STM32 MCU, con el objetivo de lograr una migración fluida entre los MCU de la serie STM32.
Cuando se lanzó la biblioteca HAL, también se añadieron muchos middlewares de terceros, incluidos RTOS, USB, TCP/IP y gráficos.
La biblioteca HAL tiene dos métodos: instalación en línea e instalación fuera de línea.
A continuación, mostramos la primera forma:
Abra el software STM32CubeMX instalado y acceda a la interfaz de gestión de bibliotecas (Ayuda -> Gestionar paquetes de software integrados). A continuación, marque la biblioteca HAL que desea instalar y haga clic en «Instalar ahora» hasta que la instalación se haya completado correctamente. Como se muestra en la siguiente animación:

¿Cómo crear un proyecto STM32CubeMX?
En este tutorial, proporciono un ejemplo sencillo de LED parpadeante para principiantes.
Herramientas necesarias
- STM32CubeMX y biblioteca HAL;
- Una placa de desarrollo;
- Un descargador ST-Link;
- IDE como: MDK-ARM, EWARM, TureSTUDIO, SW4STM32, etc.
Crear un nuevo proyecto
Selector MCU abierto
Abre STM32CubeMX y entra en el selector de MCU.

Seleccionar MCU
Seleccione su modelo de MCU, como STM32F103ZET6.

Seleccionar fuente de reloj
Si decide utilizar un reloj externo de alta velocidad (HSE), deberá configurar RCC en System Core (como se muestra a continuación). Si utiliza el reloj interno predeterminado (HSI), puede omitir este paso.

Seleccionar pin GPIO (LED)
Aquí utilizamos un pin GPIO (PF8) para controlar el encendido y apagado del LED.

Configurar el reloj
El reloj predeterminado es el reloj interno de alta velocidad (HSI). Aquí, lo cambiamos al reloj externo de alta velocidad (HSE).

Gerente de proyectos
Aquí puedes configurar tú mismo los ajustes de tu proyecto: nombre del proyecto, ubicación del proyecto, cadena de herramientas/IDE y mucho más.

Generar código
Las operaciones anteriores completan un proyecto sencillo con una configuración básica. Solo tiene que hacer clic en «Generar código». Una vez generado el código correctamente, puede abrir el proyecto. Antes de abrir el proyecto, debe instalar MDK ARM de Keil.

Añadir código de aplicación
El código generado no es lo suficientemente completo y necesitamos añadir nuestro propio código de aplicación. Como se muestra en la siguiente figura, insertamos un fragmento de código de parpadeo de LED en main.c, y el LED de la placa de desarrollo parpadeará una vez cada 1000 ms.

Nota:
- El retraso de 1000 ms requiere que el reloj esté configurado correctamente.
- Los pines correspondientes al LED deben ser coherentes con su desarrollo real.
- Después de compilar y descargar el proyecto MDK-ARM generado, debe reiniciarlo de nuevo para que pueda ejecutarse.



