Ich habe ein Projekt mit Wemos D1 Mini, bei dem die IO-Pins knapp werden. U.a. liefert ein GPS-Chip über Softserial Daten. Da benötige ich eigentlich nur die RX-Leitung am ESP. Kann ich die zugehörige TX-Leitung einfach mit digitalWrite für andere Zwecke verwenden, oder stört das irgendwelche internen Prozesse in der SoftSerial-Lib?
:
Bearbeitet durch User
Frank E. schrieb: > oder stört das irgendwelche internen Prozesse in der > SoftSerial-Lib? Du könntest in deren Quelltext nachsehen, was die mit dem Pin anstellt. Und Du könntest Dir eine Variante davon basteln, die erst gar keine Sendefunktionen enthält, um auf Nummer Sicher zu gehen.
Frank E. schrieb: > Kann ich die zugehörige TX-Leitung einfach mit digitalWrite > für andere Zwecke verwenden Vermutlich wird das klappen. Du kannst auch versuchen für TX entweder denselben Pin wie für RX oder -1 anzugeben; zumindest manche SW-Serial Libs unterstützen auf diese Art halbduplex-Verbindungen und solange Du dann nichts sendest kannst Du eben Daten empfangen.
Die Frage hat sich zum Positiven klären lassen! Weil die Arduino-Standard-Lib "SoftSerial" den WLAN-Betrieb des ESP8266 stört, habe ich nach einer speziellen Version für diesen Chip gesucht und gefunden: https://github.com/plerup/espsoftwareserial Beim Durchsehen des Sourcecodes entdeckte ich dann auch die Methode "void SoftSerial.disableTX(boolean)", die genau tut, was man erwartet. Es gibt übrigens auch eine entsprechende Methode für RX, falls man einfach nur senden möchte. Man muss zwar im Constructor trotzdem zwei Pins abgeben, aber für den jeweils nich tbenötigten wird z.B. 0 akzeptiert. Beispiel (Parameter RX-Pin, TX-Pin, invertierte Logik, Puffergröße): SoftwareSerial mySerial1(13,0,false,128); mySerial1.disableTX(true); SoftwareSerial mySerial2(14,0,false,128); mySerial2.disableTX(true); SoftwareSerial mySerial3(15,0,false,128); mySerial3.disableTX(true); usw. ... Bei der Deklaration kann man dann z.B. einfach die entsprechenden RX- bzw. TX-Pins in Einer-Schritten direkt nebeneinander definieren ... funzt.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.