Da die serielle UART-Schnittstelle bei der Arbeit mit den Nextion-Displays eine zentrale Rolle spielt, wollen wir uns das Ganze etwas näher anschauen. Wenn Sie noch nicht allzu viel Erfahrung mit Mikrocontrollern haben, dann hat die Kommunikation über die serielle Schnittstelle nämlich so ihre Tücken. Aber gerade der Arduino-Bereich gilt für viele Anwender als Einstieg und deshalb möchte ich hier auch scheinbar Selbstverständliches noch einmal erwähnen.
Ein eigentlich ganz simpler Fehler ist der falsche Anschluss der TX- und RX-Ports. Dieser Fehler basiert darauf, das häufig fälschlicherweise von der TX- und RX-Leitung gesprochen wird, die es aber nicht gibt.
Die beiden Teilnehmer einer seriellen UART-Verbindung senden ihre Daten auf dem TX-Port und empfangen auf dem RX-Anschluss. Folgich muss der RX- immer mit dem TX-Port seines Gegenübers verbunden werden.
Ein wesentlich komplexeres Problem ist die Darstellung der übertragenen Daten, bzw. deren Interpretation.
Die serielle UART ist eine sogenannte zeichenorientierte Schnittstelle. Wenn Sie z. B. mit einem Terminalprogrmm wie dem Hyperterminal oder dem TeraTerm arbeiten und senden ein "A" vom Computer an einen anderen Teilnehmer, dann kommt dort auch ein "A" an. Zumindest hat das so den Anschein, denn sowohl der Empfänger als auch der Sender interpretieren die tatsächlichen Daten so.
Bei jeder Datenübertragung können natürlich nur binäre Zahlen übertragen werden und das ist auch bei der seriellen Schnittstelle so. Um das oben genannte A zu übertragen, wird es einem eindeutigen Zeichencode zugeordnet, der im "American Standard Code for Information Interchange" (ASCII) festgelegt ist. Das große "A" wird dabei durch die dezimale Zahl 65 (hex 40) repräsentiert.
Empfängt ein Terminalprogramm also eine binäre "65" erscheint ein A auf dem Bildschirm und so lange Sie sich ausschließlich im zeichenorientierten Modus aufhalten, kann es Ihnen auch egal sein, wie die Daten auf der Leitung aussehen. Die Frage wäre allerdings: "Was sende ich, wenn ich wirklich eine 65 übertragen möchte?"
In diesem Fall hätten Sie 2 Möglichkeiten:
Noch einmal zur Klarheit: Sie senden immer die gleichen Daten, lediglich beide Teilnehmer (Programme im Sender und Empfänger) müssen wissen, wie sie diese zu interpretieren haben. Wenn z. B. von hexadezimaler oder dezimaler Darstellung geschrieben wird, dann bezieht sich das immer auf die Interpretation, nie auf die Übertratung der Daten. Je nachdem, was Sie dann darstellen wollen, kann das ganz schön kompliziert werden.