Lesen von der seriellen Schnittstelle über die Linux-Befehlszeile

Lesen von der seriellen Schnittstelle über die Linux-Befehlszeile

Ich habe ein serielles Portgerät, das ich mithilfe der Linux-Befehlszeile testen möchte.

Ich kann stty und echo verwenden, um Befehle an den seriellen Port zu senden, aber wenn das Gerät antwortet, kann ich nicht lesen, was vom seriellen Port kommt. Ich verwende

stty -F /dev/ttyS0 speed 9600 cs8 -cstopb -parenb && echo -n ^R^B > /dev/ttyS0

um einen Befehl an das Gerät zu senden. Das Gerät arbeitet und sendet innerhalb von 300 ms eine Antwort zurück. Wie drucke ich diese Antwort über die Befehlszeile auf der Konsole aus?

Antwort1

Dasselbe wie bei der Ausgabe. Beispiel:

cat /dev/ttyS0

Oder:

cat < /dev/ttyS0

Das erste Beispiel ist eine App, die den seriellen Port öffnet und das, was sie von ihm liest, an ihre stdout(Ihre Konsole) weiterleitet. Das zweite ist die Shell, die den seriellen Port-Verkehr an eine beliebige App weiterleitet; diese bestimmte App leitet dann einfach ihren Datenverkehr stdinan ihre weiter stdout.

Um einen besseren Einblick in den Datenverkehr zu erhalten, bevorzugen Sie möglicherweise einen Hex-Dump:

od -x < /dev/ttyS0

Antwort2

Ich überwache die Ausgabe für Arduino Uno wie:

screen /dev/ttyUSB0 9600

verwandte Informationen