🛠 Passer au niveau supérieur : STM32CubeIDE, HAL et LL sur F103
Pourquoi quitter (un peu) Arduino
Le core Arduino stm32duino est lui-même construit par-dessus STM32Cube HAL/LL + CMSIS + GNU Arm GCC. Travailler directement dans la chaîne ST donne la main sur l'arbre d'horloge, le routage DMA, les interruptions et la consommation — tout en gardant la génération de code graphique de STM32CubeMX et l'IDE embarqué STM32CubeIDE. Pour flasher : STM32CubeProgrammer (CLI STM32_Programmer_CLI ou GUI), qui parle SWD au connecteur 4 broches de la carte.
Note de contexte : l'ancienne Standard Peripheral Library (SPL) de ST est documentée comme dépréciée — les tutoriels qui l'utilisent encore sont à considérer comme historiques ; la SPL a été remplacée par le Cube HAL/LL.
Configurer le projet Blue Pill dans CubeMX
- Choisir la référence STM32F103C8T6 (LQFP48, 64 Ko flash / 20 Ko SRAM).
- Horloges : le quartz de la carte est un HSE 8 MHz (plus un LSE 32,768 kHz pour la RTC) ; le PLL le porte à 72 MHz, la fréquence maximale de la ligne F103 annoncée par la page produit ST.
- Activer la SWD en mode Serial Wire (PA13/PA14) dès le départ, sinon le debug suivant se termine en re-flash forcé par le bootloader ROM série.
- La taille de page de flash est de 1 Ko (densités jusqu'à 128 Ko) — important pour la simulation d'Eeprom et la gestion des écritures.
Ce que dit le silicium (CMSIS)
L'en-tête de device ST stm32f103xb.h (dépôt cmsis_device_f1) pose les limites physiques : Cortex-M3 r2p0 mono-cœur, pas de FPU (le M3 n'en a pas), __MPU_PRESENT 0 (pas de MPU), 4 bits de priorité NVIC. Autrement dit : pas de virgule flottante matérielle (à émuler en logiciel, coût CPU), pas d'isolation mémoire, pas de moteur de chiffrement — les atouts du F103 sont le prix et les périphériques (CAN, 3 USART, 2 SPI, 2 I2C, 2 ADC 12 bits, DMA 7 canaux), pas la sécurité.
Le bon réflexe documentatif
Le manuel de référence RM0008 (CD00171194 sur st.com) est la source de vérité pour les registres, les modes boot et le bootloader ROM ; la fiche technique cd00161566.pdf détaille les caractéristiques électriques. Les deux sont des PDF officiels ST — en cas de contradiction entre un blog et ces documents, ce sont eux qui gagnent.
Autres tutoriels pour cette carte
- Découvrir la Blue Pill : que trouve-t-on dans la boîte ?
- Premier programme Arduino sur la Blue Pill (core officiel stm32duino)
- Alimenter et flasher la Blue Pill : BOOT0, port série, ST-Link et DFU
- Série, ADC et chasse aux contrefaçons : diagnostiquer sa Blue Pill
- Dompter l'USB natif de la Blue Pill : CDC, DFU et la résistance rebelle
- Firmware libre sur Blue Pill avec libopencm3 et OpenOCD