Cómo imprimir una variable en la consola del depurador STM32

Guía práctica para imprimir variables en la consola de depuración STM32: SWV ITM, SEGGER RTT, UART y Semihosting. Pasos, configuración y buenas prácticas.

7 sept 2025 • 5 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Guía práctica para imprimir variables en la consola del depurador STM32. Existen varias vías limpias y eficaces para enviar mensajes de depuración a una consola mientras trabajas con STM32. Las más cómodas son SWV ITM mediante el pin SWO y SEGGER RTT que no requiere pin. También puedes usar UART o semihosting según tu contexto. A continuación verás cómo configurar cada opción en pocos pasos y con recomendaciones clave.

En Q2BSTUDIO desarrollamos soluciones embebidas y de escritorio orientadas a resultados, con enfoque en software a medida, aplicaciones a medida, ia para empresas, agentes IA, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio y power bi. Si buscas un equipo experto que integre firmware con servicios y analítica, descubre nuestro enfoque en aplicaciones a medida y software a medida.

Opción A — SWV ITM mediante SWO

Ideal cuando usas STM32CubeIDE o Keil IAR con un ST Link o J Link y tu MCU expone el pin TRACESWO, normalmente PB3.

Paso 1 Cableado. Asegura que el pin SWO TRACESWO de la placa está conectado al programador depurador. En Nucleo y Discovery suele venir listo de fábrica.

Paso 2 Configurar depuración en STM32CubeIDE. Abre Debug Configurations, elige tu configuración de lanzamiento y ve a la pestaña Debugger. Selecciona interfaz SWD. Activa Serial Wire Viewer SWV o Trace Asynchronous SW. Ajusta HCLK con el valor real de tu reloj de CPU por ejemplo 80 MHz. Fija la velocidad de SWO típicamente entre 2 MHz y 4 MHz y coherente con la sonda, a menudo derivada de HCLK dividido entre 2.

Paso 3 Abrir la consola SWV. En el IDE ve a Window Show View SWV ITM Data Console. Entra en ajustes con el icono de la llave inglesa, habilita el Stimulus Port 0 y pulsa Start Trace con el icono rojo verde.

Paso 4 Código. Puedes enviar datos llamando a ITM_SendChar o redirigir printf al puerto ITM mediante una implementación de la función write del sistema. Asegúrate de incluir los encabezados CMSIS del core que corresponda a tu MCU por ejemplo core cm4 o core cm7 y habilitar el puerto de estímulo 0.

Consejos con ITM. Desactiva el buffer de stdout para ver los mensajes al instante usando setvbuf de stdout en modo sin buffer. Si usas formatos con coma flotante en newlib nano activa la opción de linker u printf float. Evita formatos pesados en interrupciones y prefiere llamadas ligeras a ITM_SendChar dentro de ISRs.

Opción B — SEGGER RTT sin pin

Excelente cuando no tienes el pin SWO o necesitas registro de alto rendimiento sin ocupar pines. Funciona de forma nativa con J Link y en algunos entornos también con ST Link más OpenOCD.

Paso 1 Añade a tu proyecto los archivos SEGGER RTT del paquete oficial por ejemplo SEGGER RTT c y SEGGER RTT h.

Paso 2 En el código, escribe con SEGGER RTT WriteString o formatea con SEGGER RTT printf en el canal 0 u otro buffer. RTT usa un área en RAM y es no bloqueante para la mayoría de casos.

Paso 3 Visualiza la salida con J Link RTT Viewer aplicación de escritorio, con JLinkRTTClient por línea de comandos o con el complemento de RTT en CubeIDE o VS Code.

Ventajas alta velocidad, cero pines y consumo mínimo de CPU. Inconveniente su mejor integración se obtiene con herramientas J Link.

Opción C — UART printf portátil y sencilla

Redirige printf a un puerto serie con HAL UART Transmit o el driver que utilices. En placas Nucleo puedes usar el puerto virtual del ST Link VCP. Abre un terminal serie en tu PC con la velocidad configurada y verás el log sin depender del depurador.

Opción D — Semihosting funcional pero lento

Si habilitas semihosting en la configuración del depurador y enlazas con stubs de semihosting, printf se envía a la consola del depurador. Es bloqueante y detiene la CPU en cada escritura, útil para demostraciones rápidas pero no recomendable en sistemas de tiempo real.

Checklist de resolución de problemas

Si no aparece nada en SWV verifica que has arrancado el trazado en la consola SWV y que el puerto de estímulo 0 está activado. Revisa los valores reales de HCLK y la frecuencia de SWO.

Si tu placa no tiene el pin SWO accesible usa SEGGER RTT o UART.

Si ves texto corrupto reduce la velocidad de SWO y confirma el valor exacto de HCLK.

Si faltan encabezados de ITM incluye el header CMSIS del core adecuado por ejemplo core cm3, cm4, cm7.

Para máximo rendimiento prioriza RTT o ITM y evita printf con coma flotante en bucles críticos.

Buenas prácticas recomendadas

Define un wrapper ligero para logging que permita conmutar entre ITM, RTT y UART según build o entorno. Mantén los logs fuera de interrupciones o usa colas y vaciado en tarea de baja prioridad. Centraliza el cálculo del reloj para que la configuración de SWO refleje siempre el HCLK real. En producción desactiva o reduce el nivel de log para minimizar impacto.

En Q2BSTUDIO acompañamos a equipos embebidos y de software en la implantación de pipelines de testing, observabilidad y automatización, integrando registros de firmware con paneles y analítica de negocio. Además de experiencia en microcontroladores y depuración avanzada, ofrecemos ciberseguridad, servicios cloud aws y azure e inteligencia de negocio con power bi. Si quieres llevar tu flujo de trabajo de desarrollo al siguiente nivel y estandarizar procesos, conoce nuestra propuesta de automatización de procesos.

Resumen rápido. SWV ITM es perfecto si tienes el pin SWO y usas STM32CubeIDE o herramientas compatibles. SEGGER RTT brilla por su velocidad y cero pines. UART es universal y muy sencilla. Semihosting es útil para pruebas, pero es lento. Con estas opciones podrás imprimir variables en la consola del depurador STM32 de forma limpia y eficiente, mejorando tu productividad y la calidad de tus desarrollos.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.