RX und TX musst du nicht als INPUT/OUTPUT konfigurieren, sie sind bereits korrekt für Serial() UART vorkonfiguriert.
Auch für SoftSerial() musst du nur die (abweichenden) pin-Nummern benennen, nichts weiter, den Rest erledigen die Libs.
Druckbare Version
RX und TX musst du nicht als INPUT/OUTPUT konfigurieren, sie sind bereits korrekt für Serial() UART vorkonfiguriert.
Auch für SoftSerial() musst du nur die (abweichenden) pin-Nummern benennen, nichts weiter, den Rest erledigen die Libs.
Jein!Zitat:
RX und TX musst du nicht als INPUT/OUTPUT konfigurieren, sie sind bereits korrekt für Serial() UART vorkonfiguriert.
wenn die default UART an ist und du dann eine SOFT-UART auf die gleichen Pins belegst, kann es sehr gut zu einem Konflikt führen(vor allem wenn der darunterliegende Chip die Portfunktion nicht automatisch konfiguriert sondern konfiguriert werden muss, leider stecke ich im 8266 was UART angeht nicht drin, aber soweit ich es verstanden habe muss man bei PIC controllern die Pins manuell auf Ausgang schalten auch wenn die peripherie darauf gemappt ist).
Nur um es auszuschließen, soll er prüfen wie die Pins konfiguriert sind.
Das gilt nur, solange du keine "merkwürdigen" Sachen machst und den z.B. Soft Serial auf die eigentlich Hardware Serial Pins zu legen ist in meinen Augen definitv "merkwürdig"Zitat:
den Rest erledigen die Libs.
Uups, meine Antwort vom 13.2.2019 ist auf Seite 1 gelandet.
Sorry.
Hallo,
ich kann es kaum glauben, aber es funktioniert und liefert Ergebnisse die auf den ersten Blick sehr gut aussehen, sogar mit dem echten RS232 Controller.
Es liegt tatsächlich an den Pin's.
Ich fand den Code unter: https://github.com/Ariel-Internation...oftwareserial2. Diese zip Library habe ich eingebunden.
Nach einigen erneuten Pin Versuchen mit dem Code und einem Terminal nahm ich die Original angegebenen, RX=14 TX=12 ... und es klappte.
Leider habe ich bei allen Rechechen betr. NodeMCU etc. und RS232 und Pin-Belegung oder -Layout nichts gefunden was auf andere RX/TX Pin's weist.
Ob es mit der anderen Library und den Pin's 14/12 auch geht werde ich demnächst mal testen.
Vielen Dank für die erfolgreichen Dialoge.
Ich stehe für Fragen weiter zur Verfügung.
Ede
P.S. Ich hatte auch die neueste Arduino IDE 1.8.8 nochmal neu installiert und vorher ziemlich aufgeräumt.
@Ceos:
(las gerade eben erst deine Antwort vom 11.2.)
Das default UART für Serial() auf ESP8266 GPIOs 3+1 ist bei Arduino nodeMCU cores immer per default an, sobald es per Serial.begin() gestartet wurde. Hier muss man für die Benutzung per Serial() auch keine INPUT/OUTPUT pins zusätzlich initialisieren, das macht die Serial() Lib automatisch.
Auch bei SoftwareSerial() muss man nur die Klasse mir den gewünschten Pins instanziieren und keine INPUT/OUTPUT pins zusätzlich initialisieren, denn das macht auch hier die Arduino-Standard-Lib intern: https://www.arduino.cc/en/Tutorial/S...eSerialExample
Ich sehe noch nicht, dass das bei der auf ESP angepassten Lib anders laufen sollte...(?)Code:SoftwareSerial mySerial(10, 11); // RX, TX
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(57600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
Serial.println("Goodnight moon!");
// set the data rate for the SoftwareSerial port
mySerial.begin(4800);
mySerial.println("Hello, world?");
}
//
Und wir reden hier ja auch ausschließlich über die Arduino API Libs!
Daher schrieb ich ja, dass SoftwareSerial() NICHT auf dieselben Pins wie Serial() initialisiert werden sollte, gerade wenn man Serial() RX0/TX0 dort ebenfalls benutzt!
Daher schrieb ich ebenfalls, dass man für Serial() RX0/TX0 bei GPIO 3+1 bleiben soll und für SoftSerial andere GPIOs nutzen soll...
@ede62
... was du ja jetzt wohl auch getan hast - und es funkioniert ;)
gerade gefunden, als update zu esp8266 software-serial::
https://github.com/arduino/Arduino/issues/8733