Multiseriell mit MEGA

Hallo

Ich habe ein Problem mit der seriellen Schnittstelle bzw. HTerm.

Ich möchte vom PC über USB-to-RS232 daten auf das Mega2560 senden und wieder zurücksenden.
Eine Kommunikation habe ich bereits und ich verwende das Beispiel multiserialmega.

void setup() {
// initialize both serial ports:
Serial.begin(9600);
Serial1.begin(9600);
}

void loop() {
// read from port 1, send to port 0:
if (Serial1.available()) {
int inByte = Serial1.read();
Serial.write(inByte);
}

// read from port 0, send to port 1:
if (Serial.available()) {
int inByte = Serial.read();
Serial1.write(inByte);
}
}

Das problem ist, dass ich nicht den Wert sende bzw. zurückbekomme welchen ich senden möchte.
Ich habe einen Screenshot gemacht um das Ganze zu veranschaulichen.
gebe ich im SeriellenMonitor 1, 2, 3, oder 48 ein (grüne Keise), wird im HTerm nur Blödsinn wiedergegeben.
Und genauso verhält es sich umgekehrt. Gebe ich im HTerm 1, 2, 3, oder 48 ein (orange Kreise), kommt im Monitor nur Blödsinn raus.

Ich habe beide Schnittstellen gleich konfiguriert. Vom PC zur Seriel1 gehe ich mit Rx und Tx vertauscht hinein. Das Board bzw. die Serial0 hängt am USB-Board.

Ich denke ja, dass das Programm schon richtig läuft ich aber HTerm falsch konfiguriert habe, oder irgend ein Häkchen vergessen habe.

Ich habe auch schon mehrere COM-Ports versucht - kein Erfolg. Immerhin habe ich es schon geschafft, das pro character nur noch ein Byte zurückkommt.

Kann mir jemand weiterhelfen? Oder sollte es wirklich nur an HTerm liegen ein Configfile schicken das ich dann einfach reinlade und es funktioniert?

Bitte um Hilfe. Danke!

Wieso überhaupt die zwei Schnittstellen? Du kannst doch auf der gleichen Schnittstelle zurückschicken

Willst du auch wirklich ASCII schicken oder Binär-Daten? Das kannst du links von deiner Eingabe-Zeile einstellen. 48 in ASCII sind nämlich zwei Bytes. sollte aber so oder so gehen!

Ist das int inByte nicht ein Widerspruch? byte inByte sähe für mich besser aus.

Irgendwie verstehe ich nicht, wie die zwei seriellen Ports verschaltet sind. Jedenfalls kann man serielle Ein-/Ausggänge nicht zusammenschalten, das gibt Kurzschlüsse und sonstigen Murks. Wenn Du zwei USB Ports verwendest (wie?), dann sollte es funktionieren, wenn alle Baudraten richtig eingestellt sind.

Zum Testen kannst Du Rx und Tx von Serial1 verbinden (loop back), dann müßte das Echo über Serial0 richtig am PC ankommen.

Die hängen beide getrennt am PC. Wenn man was an einen schickt wird es vom anderen wieder an den PC gesendet.

Ist aber wie gesagt unnötig. Wenn man nur den Adapter testen weil kann man mit der gleichen Schnittstelle wieder zurück schicken

Serenifly:
Die hängen beide getrennt am PC. Wenn man was an einen schickt wird es vom anderen wieder an den PC gesendet.

Bei RS-232 und USB frage ich mich, ob das ein COM Port mit RS-232 Pegeln ist, oder mit TTL Pegeln.
Die mehrfachen Bytes deuten auf eine falsche Baudrate hin, aber das soll ja inzwischen behoben sein.

Es kommen 5 Bytes an weil er “48” als ASCII sendet. Also ‘4’ und ‘8’