Ich stecke bei dieser scheinbar einfachen Sache fest. Ich habe ein NMEA-GPS-Modul. Es spielt keine Rolle, wie es funktioniert, es überträgt nur einen seriellen Datenstrom mit einer Baudrate von 38400.
Ich habe ein Arduino Mega mit mehreren seriellen Hardwaremodulen. Wenn ich GPS Tx direkt mit Arduinos Tx-Pin verbinde (und Arduino so programmiere, dass das standardmäßige serielle Modul nicht verwendet wird Serial0
), kann ich rohe GPS-Sätze beobachten, die vom GPS-Modul mit dem seriellen Arduino-Monitor übertragen werden.
Was ich wirklich möchte, ist, das GPS-Modul an den Arduino- Serial1
Port zu lesen und die Empfangsdaten über den standardmäßigen seriellen Port weiterzuleiten, Serial0
ohne etwas zu tun. Damit sollte ich in der Lage sein, die Daten vom seriellen Monitor genau wie im vorherigen Fall zu überwachen.
Ich habe so etwas wie folgt versucht, aber es funktioniert nicht (es gibt einen Strom von Ziffern, ich habe versucht, alle möglichen Änderungen vorzunehmen, aber nichts hat funktioniert)
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
}
}
Hoffe hier kann mir jemand eine Lösung geben.
Serial::print()
konvertiert die Bytes in eine ASCII-Darstellung. Verwenden Sie Serial::write()
stattdessen.
Serial.print()
die Eingabe in ASCII, während Serial.write()
die Binärdaten "durchgeleitet" werden. Hier ist der Link zur Arduino-Referenz: arduino.cc/en/Serial/Write
RedGrittyBrick
Anubis