Uso del módulo en serie múltiple de Arduino

0

Estoy atascado en esta cosa aparentemente simple. Tengo un modulo GPS NMEA. No importa cómo funciona, solo transmite el flujo de datos en serie a una velocidad de 38400.

Tengo un arduino Mega que tiene varios módulos serie de hardware. Si conecto directamente el GPS Tx al pin Arduinos Tx (y programo arduino para que no use el módulo serial predeterminado, Serial0 ) entonces puedo observar las oraciones GPS sin procesar transmitidas por el módulo GPS usando el monitor serial arduino.

Lo que realmente quiero es leer el módulo GPS en el puerto arduino Serial1 y reenviar los datos de recepción a través del puerto serie predeterminado Serial0 sin hacer nada. De modo que debería ser capaz de monitorear los datos del monitor serie exactamente como en el caso anterior.

Intenté algo como lo siguiente, pero no funciona (da una secuencia de dígitos, intenté hacer todos los cambios posibles pero nada funcionó)

void setup(){
  Serial.begin(38400); // the default serial module, serial0
  Serial1.begin(38400); // GPS is connected to this
}

void loop(){
  if(Serial1.available()){ // if GPS data available
    Serial.print(Serial1.read()); // write it to serial0
  }
}

Espero que alguien aquí pueda darme alguna solución.

    
pregunta Anubis

1 respuesta

2

Serial::print() convierte los bytes en una representación ASCII. Utilice Serial::write() en su lugar.

    
respondido por el Ignacio Vazquez-Abrams

Lea otras preguntas en las etiquetas