🛠 Passer au niveau supérieur : STM32CubeIDE, HAL et LL sur F103

STM32F103 "Blue Pill" (STM32F103C8T6) · intermediaire · Quitter l'abstraction Arduino pour la chaîne officielle ST : CubeMX, HAL/LL, CubeProgrammer, et ce que dit vraiment le silicium (ni FPU, ni MPU).

Por qué dejar (un poco) Arduino

El core Arduino stm32duino está construido encima de STM32Cube HAL/LL + CMSIS + GNU Arm GCC. Trabajar directamente en la cadena de ST da control sobre el árbol de reloj, el enrutamiento DMA, las interrupciones y el consumo — manteniendo al mismo tiempo la generación gráfica de código de STM32CubeMX y el IDE embebido STM32CubeIDE. Para flashear: STM32CubeProgrammer (CLI STM32_Programmer_CLI o GUI), que se comunica por SWD con el conector de 4 pines de la placa.

Nota de contexto: la antigua Standard Peripheral Library (SPL) de ST está documentada como obsoleta — los tutoriales que aún la utilizan deben considerarse históricos; la SPL ha sido reemplazada por Cube HAL/LL.

Configurar el proyecto Blue Pill en CubeMX

  1. Elegir la referencia STM32F103C8T6 (LQFP48, 64 KB de flash / 20 KB de SRAM).
  2. Relojes: el cristal de la placa es un HSE de 8 MHz (más un LSE de 32,768 kHz para la RTC); el PLL lo eleva a 72 MHz, la frecuencia máxima de la línea F103 anunciada en la página de producto de ST.
  3. Activar la SWD en modo Serial Wire (PA13/PA14) desde el principio, de lo contrario la siguiente depuración terminará en un re-flasheo forzado mediante el bootloader ROM serie.
  4. El tamaño de página de la flash es de 1 KB (densidades hasta 128 KB) — importante para la simulación de EEPROM y la gestión de escrituras.

Lo que dice el silicio (CMSIS)

El encabezado de dispositivo de ST stm32f103xb.h (repositorio cmsis_device_f1) establece los límites físicos: Cortex-M3 r2p0 mono-núcleo, sin FPU (el M3 no tiene), __MPU_PRESENT 0 (sin MPU), 4 bits de prioridad NVIC. En otras palabras: sin coma flotante por hardware (a emular por software, con coste de CPU), sin aislamiento de memoria, sin motor de cifrado — las ventajas del F103 son el precio y los periféricos (CAN, 3 USART, 2 SPI, 2 I2C, 2 ADC de 12 bits, DMA de 7 canales), no la seguridad.

El buen reflejo documental

El manual de referencia RM0008 (CD00171194 en st.com) es la fuente de verdad para los registros, los modos de arranque y el bootloader ROM; la hoja técnica cd00161566.pdf detalla las características eléctricas. Ambos son PDFs oficiales de ST — en caso de contradicción entre un blog y estos documentos, estos últimos tienen la razón.

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales