STM32F103 "Blue Pill" (STM32F103C8T6)
⚡ L’essentiel en 60 secondes
- cpu — single-core ARM Cortex-M3, r2p0, up to 72 MHz (ST page title; f_cpu = 72000000L in PlatformIO board definition, retrieved 2026-10-13). No MPU (__MPU_PRESENT 0), 4 NVIC priority bits, no FPU (Cortex-M3) — per ST's CMSIS device header stm32f103xb.h (github.com/STMicroelectronics/cmsis_device_f1, retrieved 2026-10-13).
- memory — 64 KB flash / 20 KB SRAM ("STM32F103C8 (20k RAM. 64k Flash)", maximum_size: 65536, maximum_ram_size: 20480 in the PlatformIO board JSON above; corroborated by stm32-base.org FLASH 64 KiB / SRAM 20 KiB, retrieved 2026-10-13). Flash page size 1 KB up to 128 KB density (STM32duino-bootloader README, retrieved 2026-10-13).
- package — LQFP48 is listed among the STM32F1 package options (Wikipedia — STM32). >
- clocks_on_the_board — HSE crystal 8 MHz, LSE RTC crystal 32.768 kHz, HSI 8 MHz / LSI 40 kHz internal (stm32-base.org, retrieved 2026-10-13). >
- connectivity — no WiFi / BT / Ethernet — this is a bare MCU board; USB is device-only full-speed (bit of the fun is bit-bang/USBD stacks). CAN and RS-485-style UARTs make it popular in industrial tinkering. Board:
- power — micro-USB (5 V), +5V and +3.3V header pins; on-board 3.3 V LDO, TX6211B, 3.6–5.5 V in, 3.3 V @ 300 mA out (stm32-base.org, retrieved 2026-10-13). VBAT pin broken out; no backup battery holder; VREF+/VDDA not separately brought out (same source).
- Sur cette fiche : 9 tutoriels · 10 codes
La carte de développement communément appelée « Blue Pill » est une planche électronique compacte, mesurant environ 23 sur 53 millimètrès, qui a marqué l'histoire de l'électronique embarquée en rendant accessible au grand public la puissance des microcontrôleurs 32 bits. Son nom, inspiré du film Matrix, provient d'une anecdote de forum et fait référence à la couleur bleue de son circuit imprimé. Au cœur de cette carte se trouve le microcontrôleur STM32F103C8T6 de STMicroelectronics, un composant issu de la famille STM32F1, la première génération de cette gamme lancée par le fabricant en 2007. Ce cœur de processeur est un ARM Cortex-M3, une architecture qui a démocratisé le calcul 32 bits en remplaçant les anciens processeurs 8 bits souvent utilisés dans les projets amateurs. Le Cortex-M3 fonctionne ici à une fréquence maximale de 72 MHz, ce qui signifie qu'il peut exécuter 72 millions de cycles d'horloge par seconde. Pour un débutant, cela se traduit par une réactivité bien supérieure à celle des cartes Arduino classiques basées sur des puces 8 bits, tout en restant très économe en énergie. Il est important de noter que ce cœur ne dispose pas d'unité de calcul flottant (FPU), ce qui signifie qu'il est moins adapté aux calculs mathématiques complexes impliquant des nombres à virgule, mais reste excellent pour le contrôle d'entrées et sorties, la lecture de capteurs et la gestion de protocoles de communication.
La carte est équipée de 64 Ko de mémoire flash, qui sert à stocker le programme de manière permanente, et de 20 Ko de mémoire vive (SRAM) pour les données temporaires. Bien que ces capacités puissent paraître modestes face aux ordinateurs modernes, elles sont largement suffisantes pour la majorité des applications embarquées, comme la lecture de capteurs, le pilotage de moteurs ou la communication réseau. La connectivité est assurée par deux rangées de connecteurs mâles compatibles avec le format « Arduino Nano », ce qui permet d'utiliser certains accessoires existants. Cependant, une vigilance absolue est requise : contrairement aux cartes Arduino classiques qui fonctionnent en 5 volts, la Blue Pill opère en logique 3.3 volts. Brancher un capteur 5 volts directement sur ses broches peut endommager le microcontrôleur. La carte intègre un régulateur de tension pour convertir l'alimentation USB de 5 volts en 3.3 volts nécessaires au fonctionnement du circuit. L'alimentation se fait principalement via un port micro-USB, mais il est crucial de ne jamais alimenter la carte simultanément par USB et par une source externe, car il n'y a pas de protection contre les conflits de tension, ce qui pourrait détruire le composant.
Sur le plan des fonctionnalités, la Blue Pill offre une richesse de périphériques impressionnante pour son prix. Elle dispose de plusieurs interfaces de communication série (USART), de bus I2C et SPI pour connecter des écrans ou des capteurs, ainsi que d'un contrôleur CAN, un protocole très utilisé dans l'automobile et l'industrie. Elle possède également un port USB complet intégré directement dans la puce, permettant de l'utiliser comme périphérique USB (clé, souris, ou interface série) sans matériel supplémentaire. La programmation et le débogage peuvent se faire via une interface SWD (Serial Wire Debug) à quatre broches, compatible avec des outils comme le ST-Link. Une particularité historique de cette carte est la présence de cavaliers BOOT0 et BOOT1. Ces petits connecteurs permettent de choisir le mode de démarrage du microcontrôleur. Par défaut, la carte démarre sur le programme utilisateur, mais en changeant la position du cavalier BOOT0, on force le microcontrôleur à démarrer sur son bootloader interne, une petite zone de mémoire en lecture seule qui permet de reprogrammer la puce via un port série. Cette méthode est souvent nécessaire si le bootloader USB communautaire n'est pas installé ou s'il est corrompu.
L'écosystème logiciel de la Blue Pill est vaste et témoigne de sa longévité. Elle est entièrement supportée par le noyau Arduino officiel de STMicroelectronics, ce qui signifie que les utilisateurs peuvent programmer la carte avec l'environnement Arduino IDE en utilisant les mêmes fonctions simples (digitalWrite, analogRead) que sur une Arduino Uno, tout en profitant de la puissance du Cortex-M3. Il existe aussi un noyau communautaire plus ancien, très populaire, ainsi que des bibliothèques avancées comme libopencm3 pour les développeurs préférant le langage C pur et le contrôle direct des registres matériels. Un piège classique pour les débutants concerne la LED témoin intégrée sur la broche PC13. Contrairement à la logique habituelle où un signal haut (HIGH) allume une LED, ici la LED est câblée en mode « sink » : elle s'allume lorsque la broche est mise à l'état bas (LOW). De nombreux tutoriels indiquent que la LED ne clignote pas, alors que le code est correct, simplement parce que l'état logique est inversé.
Malgré son succès, la Blue Pill est entourée de controverses et de risques qu'il est essentiel de connaître. En raison de sa popularité et de son faible coût de fabrication, le marché est inondé de contrefaçons. Il est fréquemment rapporté que la majorité des cartes vendues aujourd'hui contiennent des puces clones, souvent fabriquées par des entreprises comme GigaDevice, qui sont fonctionnellement compatibles mais peuvent présenter des bugs matériels ou des incompatibilités subtiles avec certains logiciels. Par exemple, certaines de ces fausses puces ne supportent pas la programmation à haute vitesse ou présentent des erreurs dans la gestion des interruptions. De plus, la qualité des composants passifs varie d'un lot à l'autre. Il est courant de trouver des résistances de tirage (pull-up) sur la ligne USB de valeur incorrecte (10 kΩ au lieu de 1.5 kΩ), ce qui rend la détection USB instable et nécessite parfois une modification manuelle du circuit. Enfin, bien que la puce STM32F103 soit toujours en production, la disponibilité des cartes originales peut fluctuer, et les prix sur les marchés en ligne, souvent cités autour de quelques dollars, ne sont pas garantis par des sources officielles stables. En résumé, la Blue Pill reste une plateforme d'apprentissage exceptionnelle pour comprendre l'architecture ARM Cortex-M3, à condition d'aborder le projet avec une connaissance claire de ses limites matérielles et des risques liés aux composants de marché.

Schéma de brochage (pinout)

| Attr | Specs | vérifié |
|---|---|---|
cpu | single-core ARM Cortex-M3, r2p0, up to 72 MHz (ST page title; f_cpu = 72000000L in PlatformIO board definition, retrieved 2026-10-13). No MPU (__MPU_PRESENT 0), 4 NVIC priority bits, no FPU (Cortex-M3) — per ST's CMSIS device header stm32f103xb.h (github.com/STMicroelectronics/cmsis_device_f1, retrieved 2026-10-13). | ✔ |
memory | 64 KB flash / 20 KB SRAM ("STM32F103C8 (20k RAM. 64k Flash)", maximum_size: 65536, maximum_ram_size: 20480 in the PlatformIO board JSON above; corroborated by stm32-base.org FLASH 64 KiB / SRAM 20 KiB, retrieved 2026-10-13). Flash page size 1 KB up to 128 KB density (STM32duino-bootloader README, retrieved 2026-10-13). | ✔ |
package | LQFP48 is listed among the STM32F1 package options (Wikipedia — STM32). > | ✔ |
clocks_on_the_board | HSE crystal 8 MHz, LSE RTC crystal 32.768 kHz, HSI 8 MHz / LSI 40 kHz internal (stm32-base.org, retrieved 2026-10-13). > | ✔ |
connectivity | no WiFi / BT / Ethernet — this is a bare MCU board; USB is device-only full-speed (bit of the fun is bit-bang/USBD stacks). CAN and RS-485-style UARTs make it popular in industrial tinkering. Board: | ? non vérifié |
power | micro-USB (5 V), +5V and +3.3V header pins; on-board 3.3 V LDO, TX6211B, 3.6–5.5 V in, 3.3 V @ 300 mA out (stm32-base.org, retrieved 2026-10-13). VBAT pin broken out; no backup battery holder; VREF+/VDDA not separately brought out (same source). | ✔ |
i_o | 2× 20-pin 2.54 mm male headers (PA0–PA7, PA11–PA15, PB0–PB15, PC13–PC15, VBAT, NRST, 3V3, 5V, GND), 4-pin SWD header (3V3/PA13/PA14/GND), user LED on PC13 wired in sink mode (LED between VCC and pin → writing LOW turns it ON), power LED, reset button, BOOT0 and BOOT1 jumpers (BOOT1 on PB2) — full pin table in stm32-base.org (retrieved 2026-10-13). | ✔ |
logic_level | 3.3 V. | ? non vérifié |
consumption | ? non vérifié | |
temperature_range | ? non vérifié |
- MCU : STMicroelectronics STM32F103C8T6 — fait partie de la gamme STM32F1 "Performance" (STM32F103), première famille STM32, basée sur le cœur ARM Cortex-M3. ST a annoncé la série F1 en juin 2007 (Wikipedia — STM32, consulté le 2026-10-13). La page produit officielle de ST est intitulée "STM32F103 — Arm Cortex-M3 Microcontrollers (MCU) 72 MHz" (st.com/en/microcontrollers-microprocessors/stm32f103.html, consulté le 2026-10-13).
- Carte : la "Blue Pill" est une carte de développement chinoise sans marque, construite autour de cette puce. D'après la base de données de cartes STM32-base : Marque « Unknown », Origine « China », PCB bleu, 23 mm × 53 mm (stm32-base.org — STM32F103C8T6 Blue Pill, consulté le 2026-10-13). C'est une carte compatible avec l'empreinte Nano (headers mâles compatibles en brochage avec l'Arduino Nano, espacement de rangée DIP-30 de 0,6 pouce, mais en logique 3,3 V, et non 5 V) (Wikipedia — STM32, consulté le 2026-10-13).
- Origine du nom : « This board got its name from a forum post at the STM32duino forums and is a reference to the movie The Matrix » (« Cette carte tient son nom d'un message sur les forums STM32duino et fait référence au film Matrix ») (stm32-base.org, consulté le 2026-10-13).
- Année de lancement de la carte : >
- Prix de lancement : un article communautaire de l'époque 2015, lié depuis le README d'Arduino_STM32, est intitulé "4 Dollar 90 MIPS 32-bit 72 MHz ARM Arduino" (hackster.io/rayburne/4-dollar-90-mips-32-bit-72-mhz-arm-arduino, lié depuis github.com/rogerclarkmelbourne/Arduino_STM32, consulté le 2026-10-13). Le point de prix « pilule ≈ 2 $ » couramment cité aujourd'hui est >
- Statut : MCU en production active (page produit ST en ligne, consulté le 2026-10-13) ; carte disponible sans fin auprès des marketplaces chinoises. Attention : « most blue pill boards now contain a fake STM32 from China » (« la plupart des cartes blue pill contiennent désormais un faux STM32 venu de Chine ») (Wikipedia — STM32, consulté le 2026-10-13).
- Variantes : cartes peuplées avec un STM32F103C6 (32 Ko), C8T6 (64 Ko) ou CB (128 Ko, souvent vendu comme C8 — « 64KB Flash (most have 128KB) » (« 64 Ko de Flash (la plupart en ont 128 Ko) ») d'après le wiki land-boards.com, consulté le 2026-10-13) ; le cœur Arduino officiel liste les cibles BluePill F103C6/C8/CB (Cartes prises en charge par Arduino_Core_STM32, consulté le 2026-10-13). MCU clones compatibles en brochage provenant de GigaDevice (GD32F103, gamme Cortex-M3 introduite en 2013, Wikipedia — GigaDevice/GD32, consulté le 2026-10-13) et contrefaçons remarquées (voir Problems). La "Black Pill" est le successeur à base de F401/F411 (Wikipedia — STM32).
+ Points forts
- Le Cortex-M3 72 MHz le moins cher jamais distribué en masse — « 4 Dollar 90 MIPS 32-bit 72 MHz ARM Arduino » (lien hackster dans le README Arduino_STM32, consulté le 2026-10-13) ; le ticket d'entrée de facto vers l'ARM 32 bits.
- Vrai périphérique USB full-speed sur la puce (pas une puce CDC) : l'USB device sur PA11/PA12 permet des projets HID/MIDI/CDC/DFU sans silicium supplémentaire (broches USB d'après stm32-base.org, consulté le 2026-10-13).
- Contrôleur bxCAN (CAN1 dans la carte de brochage de la variante officielle, PeripheralPins.c/PeripheralPins.c), consulté le 2026-10-13) — rare à ce prix, il explique ses usages automobile/robotique.
- Le STM32 embarqué est lui-même la « fonctionnalité spéciale » : la puce peut être reprogrammée comme périphérique USB, si bien qu'une Blue Pill de secours peut héberger des bootloaders communautaires ou un firmware de test comme le diagnostic Blinky de Greaseweazle (wiki STM32-Fakes, consulté le 2026-10-13).
- Empreinte Nano 3,3 V compatible permettant aux shields/cartes mères Nano de fonctionner avec prudence sur les niveaux logiques (Wikipedia — STM32, consulté le 2026-10-13).
- Immense histoire Arduino à deux cœurs : la seule carte également bien servie à la fois par le cœur officiel soutenu par ST et par le cœur communautaire historique (voir Systems).
- Pas de FPU matériel, pas d'MPU, pas de moteur crypto — les « fonctionnalités » ici signifient brut rapport prix/périphériques, pas sécurité (l'en-tête CMSIS indique __MPU_PRESENT 0, cmsis_device_f1, consulté le 2026-10-13).
− Points faibles
- Les puces contrefaites/clones sont endémiques. « Unfortunately, most blue pill boards now contain a fake STM32 from China » (« Malheureusement, la plupart des cartes blue pill contiennent désormais un faux STM32 venu de Chine ») (Wikipedia — STM32, consulté le 2026-10-13). Le « Rogues' Gallery » de Greaseweazle documente des faux vendus comme STM32F103C8 avec des échecs concrets : impossible de programmer à 921600 bauds ; impossible de démarrer un firmware depuis le System Bootloader ; l'I2C n'accepte pas CR1_ACK dans la même écriture que CR1_PE ; le DMA génère des interruptions de fin parasites et se bloque ; la coupure d'horloge du backup-domain gèle la puce ; certains clones vont jusqu'à corriger l'Erratum 2.3 genuine (lectures de registres de debug), ce qui est en soi une astuce de détection (github.com/keirf/greaseweazle/wiki/STM32-Fakes, consulté le 2026-10-13). Des alternatives légitimes compatibles en brochage existent aussi (famille GigaDevice GD32F103 depuis 2013, Wikipedia — GD32). >
- Résistance de pull-up USB D+ souvent de valeur incorrecte : « Instead of a 1.5 kΩ it has either a 10 kΩ or 4.7 kΩ resistor » (« Au lieu d'une résistance de 1,5 kΩ, elle porte soit une 10 kΩ soit une 4,7 kΩ ») → énumération USB instable ; correctif en remplaçant la résistance (stm32-base.org, consulté le 2026-10-13). L'astuce de reset USB du bootloader stm32duino « relies on PA12 having a pull-up resistor of around 1.5k » (« repose sur le fait que PA12 possède une résistance de pull-up d'environ 1,5 k ») (README du bootloader).
- Aucune protection d'alimentation : « +5V pins are directly connected to the +5V pin of the USB connector. There is no protection in place. Do not power this board through USB and an external power supply at the same time » (« les broches +5V sont directement connectées à la broche +5V du connecteur USB. Il n'y a aucune protection en place. Ne pas alimenter cette carte à la fois par USB et par une alimentation externe ») (stm32-base.org et wiki land-boards, consulté le 2026-10-13).
- La LED PC13 est inversée (mode sink) : la LED utilisateur est entre VCC et PC13, elle s'allume donc quand la broche est LOW — un piège « mon code blink ne fait rien » classique chez les débutants (stm32-base.org « Mode: Sink » ; le README du bootloader note que les cartes génériques ont « the LED between Vcc and the pin, hence are on when the LED PIN is LOW » (« la LED entre Vcc et la broche, donc allumées quand la broche LED est LOW »), consulté le 2026-10-13). PC13 a aussi une capacité de drive limitée sur F103. >
- Les cartes vendues comme C8T6 embarquent fréquemment des puces CB 128 Ko ou des clones (« 64KB Flash (most have 128KB) » (« 64 Ko de Flash (la plupart en ont 128 Ko) »), wiki land-boards ; faux ci-dessus) — ne pas compter sur la densité ni même sur le marquage.
- Piège de taille de code du cœur historique : « Use of static variables inside functions greatly increase the code size… add -fno-threadsafe-statics to platform.txt » (« l'utilisation de variables static à l'intérieur des fonctions augmente fortement la taille du code… ajouter -fno-threadsafe-statics à platform.txt ») (README Arduino_STM32, consulté le 2026-10-13).
- Bizarrerie de l'ancienne chaîne du bootloader : le bootloader dérivé de maple doit être construit avec GCC 4.8 ; « 4.9 or newer… cause hardware registers to be read incorrectly and consequently the bootloader does not work » (« 4.9 ou plus récent… provoquent des lectures incorrectes des registres matériels et par conséquent le bootloader ne fonctionne pas ») (README du bootloader STM32duino, consulté le 2026-10-13).
- Risque de brique en reflashant le bootloader : « changing the bootloader may render the board unusable unless you can re-flash by other means (ST-Link or perpetual bootloader mode with Serial connection to UART1, not Serial USB) » (« changer le bootloader peut rendre la carte inutilisable sauf si vous pouvez re-flasher par d'autres moyens (ST-Link ou mode bootloader permanent avec connexion Série sur UART1, pas Serial USB) ») (wiki Arduino_STM32 — Bootloader, consulté le 2026-10-13).
- Des errata existent sur les composants genuine (référencés comme « Erratum 2.3 of genuine parts » (« Erratum 2.3 des composants genuine ») à propos des registres de debug, wiki STM32-Fakes, consulté le 2026-10-13). >
- Retour d'expérience expert expert — expert-microcontroleur
- Retour d'expérience sur la Blue Pill : c'est l'entrée la moins chère dans le monde ARM Cortex-M3 à 72 MHz, avec un vrai contrôleur USB full-speed et une interface CAN, ce qui est rare pour ce prix. Par contre, méfiance absolue sur le sourcing. Comme le note Wikipedia, la plupart des cartes contienn… — expert-microcontroleur
- Je confirme le souci USB, mais j'ai aussi galéré avec le blink. J'avais beau mettre HIGH sur PC13, rien ne s'allumait. En lisant la doc stm32-base, je vois que la LED est en mode sink, branchée entre VCC et la broche. Donc il faut écrire LOW pour l'allumer, pas HIGH. C'est contre-intuitif quand on … — maker-debutant-01
- Pour répondre à ta question sur les clones : oui, ça impacte tout. Les puces GD32F103 sont des alternatives légitimes pin-compatibles, mais les contrefaçons directes de STM32F103C8 sont souvent boguées. Par exemple, certaines ne supportent pas de modifier CR1_ACK en même temps que CR1_PE sur l'I2C,… — electronicien-forum
Retours et projets de la communauté
- Blue Pill - Error: Target not found community.st.com
- STM32F103C8T6 Blue Pill + clone ST-Link: chip id 0x414, flash 256Kb community.st.com
- A novice question on ST Microcontroller programming with Blue Pill board community.st.com
- Modbus RTU slave library for STM32F103 (blue pill) that works? forum.arduino.cc
- Blue Pill Vs Black Pill: Transitioning From STM32F103 To STM32F411 hackaday.com
Contenu indisponible pour le moment.
- CMSIS device headers (register/memory maps)
- supported boards index
- docs site
- Official Arduino core + BluePill variant
- wiki/Bootloader
- Legacy community core & wiki
- Legacy community core & wiki
- Community bootloaders
- libopencm3
- libopencm3
- libopencm3
- Board reference (pinout, regulator, warnings, boot jumpers)
- Board wiki with boot-jumper photos & serial-upload walkthrough
- Counterfeit chip field guide + Blinky test
- Wikipedia family background
- Wikipedia family background
- PlatformIO board definition
- Les puces contrefaites/clones sont endémiques. « Unfortunately, most blue pill boards now contain a fake STM32 from China » (« Malheureusement, la plupart des cartes blue pill contiennent désormais un faux STM32 venu de Chine ») (Wikipedia — STM32, consulté le 2026-10-13). Le « Rogues' Gallery » de Greaseweazle documente des faux vendus comme STM32F103C8 avec des échecs concrets : impossible de programmer à 921600 bauds ; impossible de démarrer un firmware depuis le System Bootloader ; l'I2C n'accepte pas CR1_ACK dans la même écriture que CR1_PE ; le DMA génère des interruptions de fin parasites et se bloque ; la coupure d'horloge du backup-domain gèle la puce ; certains clones vont jusqu'à corriger l'Erratum 2.3 genuine (lectures de registres de debug), ce qui est en soi une astuce de détection (github.com/keirf/greaseweazle/wiki/STM32-Fakes, consulté le 2026-10-13). Des alternatives légitimes compatibles en brochage existent aussi (famille GigaDevice GD32F103 depuis 2013, Wikipedia — GD32). >
- Résistance de pull-up USB D+ souvent de valeur incorrecte : « Instead of a 1.5 kΩ it has either a 10 kΩ or 4.7 kΩ resistor » (« Au lieu d'une résistance de 1,5 kΩ, elle porte soit une 10 kΩ soit une 4,7 kΩ ») → énumération USB instable ; correctif en remplaçant la résistance (stm32-base.org, consulté le 2026-10-13). L'astuce de reset USB du bootloader stm32duino « relies on PA12 having a pull-up resistor of around 1.5k » (« repose sur le fait que PA12 possède une résistance de pull-up d'environ 1,5 k ») (README du bootloader).
- Aucune protection d'alimentation : « +5V pins are directly connected to the +5V pin of the USB connector. There is no protection in place. Do not power this board through USB and an external power supply at the same time » (« les broches +5V sont directement connectées à la broche +5V du connecteur USB. Il n'y a aucune protection en place. Ne pas alimenter cette carte à la fois par USB et par une alimentation externe ») (stm32-base.org et wiki land-boards, consulté le 2026-10-13).
- La LED PC13 est inversée (mode sink) : la LED utilisateur est entre VCC et PC13, elle s'allume donc quand la broche est LOW — un piège « mon code blink ne fait rien » classique chez les débutants (stm32-base.org « Mode: Sink » ; le README du bootloader note que les cartes génériques ont « the LED between Vcc and the pin, hence are on when the LED PIN is LOW » (« la LED entre Vcc et la broche, donc allumées quand la broche LED est LOW »), consulté le 2026-10-13). PC13 a aussi une capacité de drive limitée sur F103. >
- Les cartes vendues comme C8T6 embarquent fréquemment des puces CB 128 Ko ou des clones (« 64KB Flash (most have 128KB) » (« 64 Ko de Flash (la plupart en ont 128 Ko) »), wiki land-boards ; faux ci-dessus) — ne pas compter sur la densité ni même sur le marquage.
- Piège de taille de code du cœur historique : « Use of static variables inside functions greatly increase the code size… add -fno-threadsafe-statics to platform.txt » (« l'utilisation de variables static à l'intérieur des fonctions augmente fortement la taille du code… ajouter -fno-threadsafe-statics à platform.txt ») (README Arduino_STM32, consulté le 2026-10-13).
- Bizarrerie de l'ancienne chaîne du bootloader : le bootloader dérivé de maple doit être construit avec GCC 4.8 ; « 4.9 or newer… cause hardware registers to be read incorrectly and consequently the bootloader does not work » (« 4.9 ou plus récent… provoquent des lectures incorrectes des registres matériels et par conséquent le bootloader ne fonctionne pas ») (README du bootloader STM32duino, consulté le 2026-10-13).
- Risque de brique en reflashant le bootloader : « changing the bootloader may render the board unusable unless you can re-flash by other means (ST-Link or perpetual bootloader mode with Serial connection to UART1, not Serial USB) » (« changer le bootloader peut rendre la carte inutilisable sauf si vous pouvez re-flasher par d'autres moyens (ST-Link ou mode bootloader permanent avec connexion Série sur UART1, pas Serial USB) ») (wiki Arduino_STM32 — Bootloader, consulté le 2026-10-13).
- Des errata existent sur les composants genuine (référencés comme « Erratum 2.3 of genuine parts » (« Erratum 2.3 des composants genuine ») à propos des registres de debug, wiki STM32-Fakes, consulté le 2026-10-13). >
- Découvrir la Blue Pill : que trouve-t-on dans la boîte ? debutant Identité de la carte, brochage, LED PC13 et pièges matériels à connaître avant de brancher quoi que ce soit.
- Premier programme Arduino sur la Blue Pill (core officiel stm32duino) debutant Installer le core STM32 officiel, sélectionner BluePill F103C8 et faire clignoter la LED PC13 en tenant compte de sa logique inversée.
- Alimenter et flasher la Blue Pill : BOOT0, port série, ST-Link et DFU debutant Les trois méthodes de programmation (ROM série, SWD, DFU USB), le rôle des jumpers BOOT0/BOOT1 et les précautions d'alimentation.
- Série, ADC et chasse aux contrefaçons : diagnostiquer sa Blue Pill intermediaire Exploiter USART1 et les ADC 12 bits, puis vérifier si la puce est un vrai STM32 ou un clone grâce au test Blinky de Greaseweazle.
- Dompter l'USB natif de la Blue Pill : CDC, DFU et la résistance rebelle intermediaire Le F103 possède un vrai périphérique USB full-speed sur PA11/PA12. Comment l'exploiter, et pourquoi l'énumération échoue sur beaucoup de cartes.
- Passer au niveau supérieur : STM32CubeIDE, HAL et LL sur F103 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).
- Firmware libre sur Blue Pill avec libopencm3 et OpenOCD avance Compiler le miniblink adapté à la LED PC13 avec la bibliothèque open-source écrite d'après les datasheets, et flasher via OpenOCD/stlink.
- Bare metal total : clignoter PC13 en écrivant aux registres (CMSIS) avance Sans aucune bibliothèque : horloge APB2, registre CRH, écritures atomiques BSRR/BRR — et compréhension intime du Cortex-M3.
- CAN sur Blue Pill : le contrôleur bxCAN à moins de 5 euros avance Le F103 embarque un contrôleur CAN (bxCAN) rarissime à ce prix. Montage, bases logicielles et mises en garde avant de l'installer dans un vrai véhicule.
Bibliothèque de code — exemples écrits pour cette carte
clignotante.cCbouton-hal.cCusart-printf.cCadc-temperature.cCpwm-timer-led.cCservo-pwm.cCi2c-oled.cCwatchdog-iwdg.cCrtc-reveil.cCusart-reception.cC
Exemples et dépôts trouvés en ligne
- rogerclarkmelbourne/Arduino_STM32 github.com
- libopencm3/libopencm3 github.com
- stm32duino/Arduino_Core_STM32 github.com