Programar STM32 con STM32CubeIDE: Guía Completa

Guía rápida: STM32CubeIDE, instalación; crear proyecto con CubeMX; configurar periféricos; generar código; programar y depurar con ST-LINK. Ejemplo LED con botón y consejos HAL/LL.

18 sept 2025 • 7 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

TL;DR Instalación rápida Instala STM32CubeIDE en Windows macOS o Linux. Crea un proyecto: File ? New ? STM32 Project y elige tu MCU o placa por ejemplo NUCLEO-L053R8. Configura periféricos en la herramienta de configuración del dispositivo conocida como CubeMX dentro del IDE. Genera el código y abre Core/Src/main.c. Escribe tu código solo dentro de los bloques marcados con /* USER CODE BEGIN */ y /* USER CODE END */. Compila con el icono del martillo. Programa y depura con el icono del insecto verde. Pulsa el botón de la placa y observa el LED responder.

Qué es STM32 STM32 es la familia de microcontroladores de 32 bits de STMicroelectronics basada en núcleos ARM Cortex M0 M0+ M3 M4 M7 M33 y más. La gama va desde modelos ultrabajo consumo hasta dispositivos de alto rendimiento con periféricos ricos como ADC DAC temporizadores SPI I2C UART USB CAN Ethernet SDMMC entre otros. Usa el buscador de MCU de ST para filtrar por consumo velocidad memoria encapsulado periféricos y precio.

Qué necesitas Documentación mantén a mano la hoja de datos para características eléctricas y pines el Manual de referencia para registros y comportamiento de periféricos y el Manual de usuario de la placa para mapear LEDs y botones. No es necesario memorizar todo pero sí saber dónde está cada cosa. Lenguaje C es el punto de inicio ideal en STM32 y luego puedes añadir C++ si lo deseas. Aprende tipos punteros cabeceras y sistemas de compilación.

Hardware Recomendadas las placas Nucleo que incluyen depurador programador ST LINK y cabeceras Arduino. Las Discovery suelen traer sensores y pantallas además de ST LINK integrado. Para BluePill o placas personalizadas usa un ST LINK V2 o un Nucleo como programador conectando SWDIO SWCLK GND 3V3 y poniendo BOOT0 en 0 para arranque normal. Consejo en Nucleo deja los puentes de ST LINK en la posición por defecto para programar el objetivo a bordo; podrás retirarlos más tarde si quieres usar la placa como programador externo.

Software gratis STM32CubeIDE combina Eclipse CubeMX GCC GDB y herramientas ST LINK en una única instalación. Gestiona selector de MCU o placa configurador de pines y periféricos generador de código HAL/LL compilador enlazador depurador y programador.

Opciones de marco de trabajo Bare metal registros puros mayor control y rendimiento pero curva de aprendizaje pronunciada. Arduino core para STM32 útil para demos rápidas pero limitado si buscas flujos profesionales. Mbed OS aporta un ecosistema RTOS y drivers ideal si te interesa esa capa. LL control fino y eficiente más trabajo que HAL. HAL Capa de alto nivel recomendada para principiantes APIs legibles rápida para prototipado y con muchos ejemplos. Puedes mezclar HAL y LL por periférico en la configuración de Cube.

Flujo de trabajo en STM32CubeIDE Paso 0 instala STM32CubeIDE desde la web de ST con valores por defecto. En Windows el instalador puede añadir drivers ST LINK. Paso 1 crea un proyecto File ? New ? STM32 Project usa el selector de placas busca tu Nucleo o Discovery por ejemplo NUCLEO-L053R8 y al seleccionar la placa los periféricos como LED y USER button quedan mapeados. Nombra el proyecto acepta inicializar periféricos con valores por defecto. Paso 2 configura periféricos en la vista integrada Pinout y Configuration activa lo que necesites GPIO UART I2C SPI temporizadores Cube asigna pines automáticamente puedes remapear si es necesario. Ajusta el Clock si usas cristal externo o necesitas frecuencias específicas. En Project Manager Code Generator marca generar la inicialización de periféricos como pares .c .h para una estructura más limpia. Paso 3 genera el proyecto Project Generate Code esto crea la estructura Core y Drivers y las funciones de init. Paso 4 entiende los archivos estructura típica Core Inc cabeceras Src fuentes Drivers STM32xx_HAL_Driver CMSIS tu punto de entrada es Core/Src/main.c escribe solo dentro de los bloques /* USER CODE BEGIN */ y /* USER CODE END */ porque el resto puede sobrescribirse al regenerar. Paso 5 ejemplo Button a LED objetivo cuando se pulsa el botón enciende el LED en el bucle principal añade dentro de main.c el siguiente fragmento dentro de /* USER CODE BEGIN WHILE */ y escapa los signos menor y mayor si lo pegas en HTML: /* USER CODE BEGIN WHILE */ while (1) { if (HAL_GPIO_ReadPin(B1_GPIO_Port B1_Pin) == GPIO_PIN_SET) { HAL_GPIO_WritePin(LD2_GPIO_Port LD2_Pin GPIO_PIN_SET); } else { HAL_GPIO_WritePin(LD2_GPIO_Port LD2_Pin GPIO_PIN_RESET); } } /* USER CODE END WHILE */ Los macros B1 y LD2 vienen del mapeo de placa no necesitas codificar puertos y pines a mano. Para alternar usa HAL_GPIO_TogglePin(LD2_GPIO_Port LD2_Pin); HAL_Delay(200);

Paso 6 compilar y flashear compila con el martillo si no hay errores perfecto. Programa y depura con el insecto verde STM32CubeIDE detecta ST LINK sugiere configuración de depuración y ofrece actualizar firmware. Carga tu .elf al objetivo inicia sesión de depuración y podrás poner breakpoints hacer step y ver variables y reanudar la ejecución.

Avanzando rápido A Debounce sencillo usa temporización para evitar rebotes por ejemplo controlando HAL_GetTick. B Interrupciones EXTI en la vista de pines configura el pin del botón como GPIO_EXTI Cube genera HAL_GPIO_EXTI_Callback en la que puedes comprobar GPIO_Pin y alternar el LED asegúrate en NVIC de habilitar la interrupción. C Depuración por texto activa USART en Cube y reenvía printf al UART mediante retarget o usa SWV ITM para trazas sin UART. D Mezcla HAL y LL en Project Manager Advanced Settings pon algunos periféricos en LL para menor latencia y deja otros en HAL para facilidad.

Problemas frecuentes y soluciones Target not found usa buen cable USB verifica alimentación y puentes de ST LINK y prueba bajar la frecuencia SWD en la configuración de depuración. En placas personalizadas comprueba SWDIO SWCLK GND 3V3 y NRST. Mi código desapareció tras regenerar moviste código fuera de los bloques USER CODE. Muévelo dentro y regenera. LEDs o botones no coinciden revisa el manual de la placa y la vista Pinout. HAL_Delay bloquea usa temporizadores o interrupciones para tareas no bloqueantes.

Adaptación a BluePill o placa personalizada al crear proyecto elige el MCU exacto por ejemplo STM32F103C8Tx y configura GPIO relojes y periféricos manualmente. Programa con ST LINK V2 conectando SWDIO SWCLK GND 3V3. Si usas cristal externo configúralo en Clock Configuration y en la primera conexión realiza un erase completo si es necesario.

Plantilla limpia reutilizable crea Core/Inc/app.h Core/Src/app.c para la lógica de aplicación y deja main.c mínimo con inicialización y bucle principal. Organiza por módulos por ejemplo led.c buttons.c uart.c y mantén el código dentro de bloques USER CODE para seguridad al regenerar.

FAQ HAL vs LL vs registros comienza con HAL. Si necesitas rendimiento crítico pasa a LL y solo toca registros cuando sea imprescindible. Reutilización entre familias sí es posible HAL facilita mucho la portabilidad separa las partes dependientes de hardware. RTOS necesario no para aplicaciones simples pero para tareas sensibles al tiempo considera FreeRTOS que Cube puede añadirte.

Próximos pasos UART para enviar y recibir texto I2C SPI para sensores y pantallas temporizadores PWM para medir y controlar ADC DAC para señales FreeRTOS para apps complejas bootloaders y OTA para actualizaciones en producción modos de bajo consumo STOP STANDBY y despertadores RTC para dispositivos con batería.

Plantilla mínima ejemplo pega en Core/Src/main.c dentro del bloque /* USER CODE BEGIN WHILE */ el bucle que controla botón y LED y recuerda revisar los macros generados por la selección de placa.

Sobre Q2BSTUDIO Q2BSTUDIO es una empresa de desarrollo de software especializada en aplicaciones a medida y software a medida para clientes que necesitan soluciones personalizadas y escalables. Ofrecemos servicios de inteligencia artificial y desarrollamos soluciones de ia para empresas incluyendo agentes IA para automatización y optimización de procesos. También proporcionamos servicios de ciberseguridad y pentesting para proteger tus productos y datos. Si buscas un partner para crear tu aplicación contacta nuestro equipo de desarrollo en desarrollo de aplicaciones a medida y conoce cómo podemos integrar inteligencia artificial y servicios cloud. Además desplegamos y gestionamos infraestructuras en la nube con experiencia en servicios cloud aws y azure puedes ver nuestras capacidades en servicios de inteligencia artificial y cómo aplicarlos a tus procesos.

Palabras clave para SEO aplicaciones a medida software a medida inteligencia artificial ciberseguridad servicios cloud aws y azure servicios inteligencia de negocio ia para empresas agentes IA power bi integradas de forma natural en nuestros servicios para mejorar el posicionamiento y ofrecer soluciones completas desde la concepción hasta la puesta en producción.

Resumen rápido empieza con STM32CubeIDE crea el proyecto usa CubeMX para configurar periféricos genera código edita solo en bloques USER CODE compila y depura con ST LINK y escala tu proyecto con HAL LL o registros según convenga. Si necesitas ayuda profesional en desarrollo embebido integración con servicios cloud IA o protección de tu producto recuerda que Q2BSTUDIO ofrece experiencia en todas esas áreas y puede acompañarte en todo el ciclo de vida del proyecto.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat