Kann ich Arduino USART tx und rx separat verwenden?

Meine Idee ist, GPS-Sätze im RX-Pin zu empfangen, die Daten zu analysieren und das Ergebnis über den TX-Pin an meinen Computer zu senden. (mit gleicher Baudrate, z. B. 9600)

Ist es möglich oder kann ein Pufferproblem für nicht verbrauchte Bytes auftreten?

Antworten (3)

RS-232 besteht eigentlich aus zwei getrennten seriellen Leitungen, eine in jede Richtung. Ebenso ist die UART-Hardware zum Empfangen und Senden unabhängig, mit Ausnahme des Baudratengenerators. Solange Sie dieselbe Baudrate verwenden möchten (was Sie tun), sollte es kein Problem geben. Denk darüber nach. Das Mikro sieht nur eine RX- und TX-Leitung. Es hat keine Möglichkeit zu wissen, ob sie mit RX und TX eines anderen Geräts verbunden sind oder so aufgeteilt sind, dass TX an RX eines Geräts und RX an TX eines anderen Geräts geht. Wie würden Sie sich vorstellen, dass es den Unterschied erkennen könnte?

Wenn die Protokolle auf höherer Ebene für eines dieser Geräte bidirektional sind, funktioniert dies natürlich nicht. Wenn Sie nur GPS-Bytes an Ihren Computer weitergeben möchten, würde das funktionieren. Wenn dem GPS jedoch etwas gesendet werden muss, um es zum Laufen zu bringen, oder anderweitig gesteuert werden muss, funktioniert es nicht.

Das GPS-Gerät, das ich verwende, hat einen Modus, in dem es nur seinen TX-Pin verwendet

Es ist definitiv möglich, solange Sie nicht erwarten, die beiden Geräte zu multiplexen. Ob es ratsam ist oder nicht, ist eine ganz andere Sache.

Verdrahten Sie also einfach den RX-Pin mit dem GPS und den TX-Pin mit dem PC. Sie können weder an das GPS senden noch vom PC empfangen.

Ja, Sie könnten dies wahrscheinlich tun, aber ist nur ein UART verfügbar? Wenn ja, und Sie möchten in der Lage sein, entweder von PC oder GPS zu senden und zu empfangen, dann könnten Sie vielleicht einen zweiten UART mit Bit-Banging
prüfen .

Das Arduino-Gerät hat nur einen UART zur Verfügung.