pont-uart.ino

GD32F103 (GigaDevice) — chip + placas compatibles Blue Pill · Archivo : pont-uart.ino · Lenguaje : Arduino · Uso : Faire le pont entre deux ports série

El GD32 tiene tres UART y el core los expone como Serial/Serial2/Serial3. Este puente bidireccional sirve para configurar un módulo (comandos AT) o depurar un GPS sin desoldar nada.

Hardware necesario

Una placa de desarrollo GD32F103C8T6 (Cortex-M3 a 108 MHz, compatible pin a pin con Blue Pill), alimentada a 3,3 V/5 V, con un adaptador ST-Link o serie. 1 adaptador USB-serie de 3,3 V (para el primer puerto) + 1 módulo TTL a 9600 baudios.

Cableado

Adaptador en PA9/PA10 (cruce TX/RX, masas comunes, solo 3,3 V). Módulo en PA2/PA3. La placa se alimenta por ST-Link o 3,3 V externo.

Funcionamiento

Dos búferes FIFO en el núcleo; los while aseguran que se vacía todo cada vuelta. El caudal asimétrico 115200/9600 es el caso real (consola rápida, módulo lento). Con Arduino: instale el core « STM32F1 » (Roger Clark, gestor de placas) y elija la placa « GD32F103C »; el LED de usuario es PC13 (activo en LOW). En C: biblioteca de firmware GD32F10x + ST-Link.

Para ir más lejos

Filtren líneas (quedarse solo con $GPRMC), o conviertan el puente en traductor de protocolo serie.

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());
}

← Volver a la ficha