🛠 Premier programme Arduino sur la Blue Pill (core officiel stm32duino)

STM32F103 "Blue Pill" (STM32F103C8T6) · debutant · Installer le core STM32 officiel, sélectionner BluePill F103C8 et faire clignoter la LED PC13 en tenant compte de sa logique inversée.

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

  1. Ouvrir Arduino IDE 2, aller dans Gestionnaire de cartes et ajouter l'URL : https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json.
  2. Installer « STM32F1 boards ».
  3. 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

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels