🛠 Premier programme Arduino sur la Blue Pill (core officiel stm32duino)
Pourquoi le core officiel ?
La Blue Pill est servie de première classe par stm32duino/Arduino_Core_STM32, le core Arduino soutenu par ST, basé sur STM32Cube HAL/LL, CMSIS et le compilateur GNU Arm GCC. La cible BLUEPILL_F103C8 est supportée depuis le core 1.2.0. Attention : depuis la release 2.8.0 du core, seul Arduino IDE 2 est pris en charge. Il existe aussi un core communautaire historique (rogerclarkmelbourne/Arduino_STM32, dérivé de libmaple, pour Arduino IDE 1.8.x), mais pour démarrer en 2026, le core officiel est recommandé.
Installation pas à pas
- Ouvrir Arduino IDE 2, aller dans Gestionnaire de cartes et ajouter l'URL :
https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json. - Installer « STM32F1 boards ».
- Sélectionner la carte Generic STM32F1 series → BluePill F103C8.
Le blink, version Blue Pill
La LED utilisateur est sur PC13, en mode sink : LOW = allumée. Le code ci-dessous clignote donc « à l'envers » d'un Arduino classique, et c'est normal :
#include <Arduino.h>
void setup {
pinMode(PC_13, OUTPUT);
digitalWrite(PC_13, HIGH); // LED ÉTEINTE (câblée au VCC)
Serial1.begin(115200); // USART1 : PA9=TX, PA10=RX
analogRead(PA_0); // ADC1_IN0, 12 bits sur F103
}
void loop {
digitalWrite(PC_13, LOW); // LED ALLUMÉE (logique active-basse)
delay(250);
digitalWrite(PC_13, HIGH); // LED ÉTEINTE
delay(750);
Serial1.printf("ADC PA0=%u\r\n", analogRead(PA_0));
}
Ce que fait ce programme
Serial1correspond à USART1 sur PA9 (TX) / PA10 (RX) — le même port que le bootloader ROM. Il faut un adaptateur série USB (FTDI) pour voir les messages, la prise micro-USB n'étant pas reliée à un convertisseur série sur cette carte.analogRead(PA_0)lit l'entrée ADC1_IN0 ; le F103 dispose de deux ADC 12 bits (PA0..PA7 entre autres) mais d'aucun DAC (explicitement « No DAC » dans les fichiers de la variante officielle).- Pour téléverser sans débogueur, voir le tuto « Alimenter et flasher » (BOOT0 + port série ou adaptateur ST-Link).
Autres tutoriels pour cette carte
- Découvrir la Blue Pill : que trouve-t-on dans la boîte ?
- 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
- Passer au niveau supérieur : STM32CubeIDE, HAL et LL sur F103
- Firmware libre sur Blue Pill avec libopencm3 et OpenOCD