clignotante.ino
La LED bleue des cartes GD32/Blue Pill est sur PC13 et active à LOW — le premier « pourquoi elle clignote à l'envers » de la carte. millis() garde la boucle libre, le core STM32F1 accepte le GD32 tel quel.
Matériel requis
Une carte de développement GD32F103C8T6 (Cortex-M3 108 MHz, compatible broche à broche Blue Pill), alimentée en 3,3 V/5 V, avec un adaptateur ST-Link ou série. Aucun : la LED embarquee suffit.
Branchement
Rien a cabler (LED sur PC13 via 4,7 k). Pour une LED externe : broche via 330 Ω vers GND, logique active-hau cette fois.
Fonctionnement
digitalWrite inverse LOW/HIGH pour allumer la LED actif-bas. Le core Roger Clark cible le STM32F103 ; le GD32F103, clone quasi binaire, repond au meme code a 108 MHz. Avec Arduino : installez le core « STM32F1 » (Roger Clark, gestionnaire de cartes) et choisissez la carte « GD32F103C » ; le LED utilisateur est PC13 (actif à LOW). En C : bibliothèque GD32F10x + ST-Link.
Pour aller plus loin
Deux LED et un motif, ou la periode pilotee par un potentiometre sur PA0 (sketch suivant).
clignotante.ino
// Clignotement non bloquant — LED bleue sur PC13, activee a LOW.
const int LED = PC13;
const unsigned long PERIODE = 500;
bool etat = false;
unsigned long precedent = 0;
void setup() {
pinMode(LED, OUTPUT);
Serial.begin(115200); // Serial1 = PA9/PA10 (USB-Serie externe)
Serial.println("Clignotement GD32 (108 MHz)");
}
void loop() {
unsigned long t = millis();
if (t - precedent >= PERIODE) {
precedent = t;
etat = !etat;
digitalWrite(LED, etat ? LOW : HIGH); // actif-bas !
Serial.print("tick ");
Serial.println(analogRead(PA0)); // bruit de fond d'un entree flottante
}
}