XIAO STM32C5 con STM32CubeIDE

Descripción general
STM32CubeIDE es el entorno de desarrollo integrado oficial, gratuito y multiplataforma de STMicroelectronics para microcontroladores STM32. También es adecuado para desarrollar aplicaciones para la XIAO STM32C5.
STM32CubeIDE proporciona la toolchain GNU Arm y admite flujos de compilación basados en CMake y Ninja, lo que reduce la necesidad de configuración adicional del entorno. Cubre todo el flujo de trabajo de desarrollo, incluida la creación de proyectos, la configuración de periféricos, la edición de código, la compilación, la programación del firmware y la depuración en el dispositivo.
Preparación de hardware
Antes de comenzar, prepara los siguientes elementos:
- 1 × XIAO STM32C5
- PC y cable USB tipo‑C
- 1 × ST‑LINK/V2 (opcional)
| Seeed Studio XIAO STM32C5 |
|---|
![]() |
Instalación de STM32CubeIDE
- Descarga el paquete de instalación. Haz clic en STM32CubeIDE Software para ir a la página de descarga. Selecciona Get Software en la página principal o desplázate hasta la parte inferior de la página. Elige el instalador que coincida con el sistema operativo de tu PC. Se recomienda utilizar la versión más reciente.

- Puedes descargar el instalador con una cuenta registrada o como invitado. Para este proceso se requiere el correo electrónico y otra información relacionada.

- El enlace de descarga se enviará a tu dirección de correo electrónico. Haz clic en el enlace para obtener el instalador del software.

- Ejecuta el instalador, lee los acuerdos de licencia correspondientes y selecciona I Agree.

- Selecciona el directorio de instalación.

- Instala el controlador para la sonda de depuración que planeas usar. Los controladores de la sonda no son necesarios para los pasos de flasheo UF2 que se muestran a continuación.

Desarrollo con XIAO STM32C5
- Dado que la XIAO STM32C5 admite de forma nativa el flasheo de firmware en formato UF2, se proporciona un proyecto de ejemplo de referencia para simplificar tu desarrollo. Haz clic en el siguiente enlace para descargar el ejemplo:
-
🗃️[Project] XIAO STM32C5 Blink Project
-
Extrae el archivo comprimido después de descargarlo. La estructura resultante del proyecto debe coincidir con el esquema que se muestra a continuación.

- Inicia STM32CubeIDE; aparecerá la interfaz que se muestra a continuación. El contenido de esta sección está extraído del 📄[PDF] STM32CubeIDE User Guide
En el primer inicio, STM32CubeIDE solicita la selección del espacio de trabajo. El espacio de trabajo predeterminado funciona bien y no afectará a los pasos posteriores.

- Importa el proyecto. En la barra de herramientas superior derecha, ve a File → STM32 Project Create/Import y luego selecciona Import STM32CubeMX / STM32CubeIDE Project.

- Elige el directorio del proyecto extraído xiao_c5_project y haz clic en Finish.

- Después de la importación, la estructura del proyecto se muestra en la siguiente figura.

- SDK: Contiene el paquete SDK STM32CubeC5. Es un SDK reducido que solo incluye los archivos esenciales para compilar el firmware de la XIAO STM32C5; no es la versión completa del SDK.
- Source: Directorio de código fuente, que contiene
main.cy archivos de definición específicos de la placa para la XIAO STM32C5. - Startup: Archivos de inicio obligatorios para la XIAO STM32C5.
- tools: Contiene el script
uf2conv.py, que convierte los binarios compilados bin al formato UF2 después de cada compilación.
Compilación y flasheo del firmware
- Descripción general del programa. Abre Source → main.c. Este es un ejemplo sencillo de parpadeo del LED integrado para la XIAO STM32C5. Cambia el nivel lógico del LED cada 500 ms para lograr el efecto de parpadeo.
/**
* @file main.c
* @brief Minimal LED application for the Seeed XIAO STM32C5.
*
* SPDX-License-Identifier: MIT
* Copyright (c) 2026 Seeed Technology Co., Ltd.
*/
#include "board.h"
#include "uart_io.h"
int main(void)
{
if (HAL_Init() != HAL_OK) {
Error_Handler();
}
board_clock_init();
board_uart_init();
board_led_init();
// uprintln("[LED] PB12 onboard LED is blinking (500 ms interval)");
uart_log_flush();
while (1) {
HAL_GPIO_TogglePin(LED_PORT, LED);
uprintln("[LED] PB12 onboard LED is blinking");
uart_log_flush();
HAL_Delay(500U);
}
}
board_clock_init();: Inicializa los relojes de periféricos necesarios para la XIAO STM32C5.board_uart_init();: Inicializa la configuración de E/S UART para la XIAO STM32C5.board_led_init();: Inicializa la configuración de E/S para el LED de usuario integrado de la XIAO STM32C5.HAL_GPIO_TogglePin(LED_PORT, LED);: Función de conmutación GPIO de la biblioteca STM32 HAL, que conmuta el nivel lógico GPIO del LED de usuario.
- En la barra de herramientas, selecciona Release para activar la compilación automática del proyecto.

- Después de una compilación correcta, se generará una carpeta Release que contiene múltiples artefactos de compilación. Entre estas salidas, el archivo bin y el archivo uf2 son los que necesitas.

También puedes compilar el proyecto seleccionando Build. Esto crea una carpeta Build que contiene los archivos de firmware generados.
Flasheo de firmware en formato UF2
- Pulsa dos veces el botón de reinicio en la XIAO STM32C5. Aparecerá la unidad de almacenamiento masivo de la XIAO STM32C5. Copia el archivo UF2 en esta unidad para finalizar el flasheo.

Flasheo con ST-LINK/V2
ST-LINK/V2 es una herramienta oficial de depuración y programación lanzada por STMicroelectronics. Es compatible con las familias de microcontroladores STM8 y STM32, y permite la descarga de programas, el flasheo de firmware y la depuración en chip a través de las interfaces SWIM, JTAG o SWD. La siguiente sección describe cómo flashear firmware a la XIAO STM32C5 usando ST‑LINK/V2 junto con STM32CubeIDE
- Conecta el ST‑LINK/V2 a tu PC. En el IDE, ve a Help → ST‑LINK Upgrade y actualiza su firmware a la versión más reciente para garantizar una buena compatibilidad con los dispositivos STM32C5.

- Conecta el ST‑LINK/V2 al XIAO STM32C5. Consulta abajo las conexiones de pines. Este paso requiere soldadura.

- Entre los pines de conexión, RST es una interfaz opcional y puede dejarse sin conectar.
- También puedes usar el XIAO Debug Mate para conectarte a la herramienta ST‑LINK/V2, lo que elimina la necesidad de soldadura manual.

- Haz clic en Run en la barra de herramientas para completar el flasheo. STM32CubeIDE detectará automáticamente el programador ST‑LINK/V2.

Resumen
- Después de flashear el firmware correspondiente al XIAO STM32C5 usando los métodos anteriores, el LED de usuario integrado conmutará y parpadeará cada 500 ms.

También puedes conectar D6 y D7 a un adaptador TTL‑a‑UART. Abre cualquier monitor serie; el puerto serie imprimirá la cadena [LED] PB12 onboard LED is blinking cada 500 ms.

Archivos dentro de la carpeta Source
-
board.c / board.h
Define el mapeo de pines y los recursos específicos de la placa para XIAO STM32C5. Proporciona configuraciones de inicialización para periféricos como reloj, GPIO, CAN y ADC, y puede servir como base para el desarrollo de aplicaciones.
-
test.c / test.h
Proporciona rutinas de verificación para periféricos integrados como el IMU y el LED, así como interfaces que incluyen CAN, SPI, I2C y ADC. Estas rutinas pueden utilizarse para la validación de funciones de hardware y como referencia de código.
-
uart_io.c / uart_io.h
Gestiona el procesamiento de caracteres y el análisis de comandos para los datos UART recibidos, ofreciendo un punto de entrada interactivo para las rutinas de prueba. Las interfaces de comunicación de bajo nivel son implementadas por otros módulos.
Recursos de referencia
- 🗃️[Project] Proyecto de parpadeo XIAO STM32C5
- 📄[Document] Guía de usuario de STM32CubeIDE
- 📄[Datasheet] STM32C5A3CGX
- 📄[Examples] Librería de ejemplos STM32
Soporte técnico y debate sobre el producto
¡Gracias por elegir nuestros productos! Estamos aquí para ofrecerte diferentes tipos de soporte y garantizar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para adaptarnos a diferentes preferencias y necesidades.
