pont-uart.ino

GD32F103 (GigaDevice) — puce + cartes compatibles Blue Pill · Fichier : pont-uart.ino · Langage : Arduino · Usage : Faire le pont entre deux ports série

Le GD32 a trois UART : le core les expose en Serial/Serial2/Serial3. Ce pont bidirectionnel sert à configurer un module (AT commands) ou à déboguer un GPS sans le souder ailleurs.

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. 1 adaptateur USB-série 3,3 V (pour le premier port) + 1 module TTL à 9600 bauds.

Branchement

Adaptateur sur PA9/PA10 (croisez TX/RX, masses communes, 3,3 V uniquement). Module sur PA2/PA3. L'alimentation USB de la carte se fait par ST-Link ou 3,3 V externe.

Fonctionnement

Deux buffers FIFO côté cœur ; les while assurent que tout est vidé à chaque tour. Le débit 115200/9600 asymétrique est le cas réel (console rapide, module lent). 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

Filtrez les lignes (ne garder que $GPRMC), ou transformez le pont en traducteur de protocole série.

pont-uart.ino

// Pont Serial (USB-Serie sur PA9/PA10) <-> Serial2 (PA2/PA3).
// Utile pour brancher un module GPS/GSM/Bluetooth 3,3 V.
void setup() {
  Serial.begin(115200);     // PA9 TX / PA10 RX : adaptateur USB-UART
  Serial2.begin(9600);      // PA2 TX / PA3 RX  : le module
  Serial.println("Pont actif : tapez, ca rebondit");
}

void loop() {
  while (Serial.available())        // PC -> module
    Serial2.write(Serial.read());
  while (Serial2.available())       // module -> PC
    Serial.write(Serial2.read());
}

← Retour à la fiche