🛠 Console série sur USART0 (PA9/PA10)
Objectifs
Mettre en place une console série sur USART0 (broches vérifiées : TX sur PA9, RX sur PA10 sur la plupart des cartes GD32F103C8 de type Blue Pill), envoyer des messages périodiques et relire ce que vous tapez. C'est l'outil de débogage de base : la plupart des tutoriels suivants en dépendent.
Matériel
- Carte GD32F103C8T6 / CBT6 compatible Blue Pill
- Convertisseur USB vers série (FT232, CP2102, CH340) impérativement réglé sur 3,3 V en logique : l'alimentation et les broches du GD32F103 sont spécifiées de 2,6 à 3,6 V ; un module 5 V en mode TTL standard n'est pas garanti (seules certaines broches sont « 5 V tolerant »)
- 3 fils : PA9 → RX de l'adaptateur, PA10 → TX de l'adaptateur, masse commune
- Moniteur série de l'IDE ou tout terminal à 115200 bauds, 8N1
Code complet
// console_usart0.ino — GD32F103C8, core CommunityGD32Cores
// Serial = USART0 sur PA9 (TX) / PA10 (RX), comme sur les Blue Pill.
#include <Arduino.h>
uint32_t compteur = 0;
void setup {
Serial.begin(115200);
delay(100);
Serial.println("GD32F103 : console série prete");
Serial.println("Envoyez n'importe quel caractère pour l'echo.");
}
void loop {
if (Serial.available > 0) {
char c = (char)Serial.read;
Serial.print("Recu : ");
Serial.println(c);
}
if (compteur % 20 == 0) {
Serial.print("tick ");
Serial.println(compteur / 20);
}
compteur++;
delay(50);
}
Vérification attendue
À 115200 bauds, vous voyez défiler « tick 1 », « tick 2 »… une fois par seconde, et chaque touche tapée est répétée en « Recu : x ». Si vous voyez des caractères illisibles constants, c'est presque toujours une mauvaise vitesse ou une masse oubliée.
Erreurs fréquentes
- TX et RX non croisés : TX de la carte vers RX de l'adaptateur et inversement ; le câblage « droit » ne communique jamais.
- Masse non commune : sans GND commun, vous lisez du bruit ou rien du tout.
- Niveaux 5 V : un adaptateur configuré en 5 V sort du domaine garanti d'alimentation (2,6 à 3,6 V) ; utilisez un module 3,3 V.
- Mauvais port série matériel : sur ce core,
Serialcorrespond à USART0 (PA9/PA10) ; si vous avez câblé d'autres broches, vérifiez la correspondance port/broches du core. - Broches occupées : sur certaines cartes, le moniteur passe par un second USART relié au connecteur micro-USB « debug » ; reliez-vous bien aux broches que vous avez câblées.
- Le programme ne démarre pas : vérifiez BOOT0 (doit être à 0 pour booter sur la flash principale, sinon la carte reste dans le bootloader système situé à partir de 0x1FFF B000 — adresse propre au GD32, différente du STM32F103).
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.inoArduinobouton-led.inoArduinorespiration.inoArduinopotentiometre.inoArduinopont-uart.inoArduinooled-i2c.inoArduino