Forum: Mikrocontroller und Digitale Elektronik Parität und Stopbits von SoftwareSerial


von Das wüsstet ihr G. (critical_brain_error)


Lesenswert?

Hi,

wüsste jemand die Parität und die Anzahl an Stoppbits für den von 
SoftwareSerial emulierten UART-Port?

Danke

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

ich vermute: Genau die Parameter, welche in der Software auf Arduino 
Seite vorgegeben sind. Du brauchst also nur im Quellcode nachzusehen.

https://docs.arduino.cc/learn/built-in-libraries/software-serial

Oder was ist jetzt die genaue Frage?

: Bearbeitet durch User
von Das wüsstet ihr G. (critical_brain_error)


Lesenswert?

Hi,
vielen Dank. Eine so schnelle Antwort habe ich nicht erwartet.
Ich weiß jetzt aber nicht was du meinst. Die Baudrate ist mir völlig 
klar, aber die Parität und Anzahl an Stopp-Bits steht nicht bei mir als 
auch nicht bei Arduino im Quellcode.

von EAF (Gast)


Lesenswert?

Das wüsstet ihr G. schrieb:
> aber die Parität und Anzahl an Stopp-Bits steht nicht bei mir als
> auch nicht bei Arduino im Quellcode.

Dann gehe von 8N1 aus.

Was anderes scheint nicht vorgesehen zu sein.

von Wolfgang (Gast)


Lesenswert?

Das wüsstet ihr G. schrieb:
> ... aber die Parität und Anzahl an Stopp-Bits steht nicht bei mir als auch
> nicht bei Arduino im Quellcode.

Meinst du, dass die Werte vom Himmel fallen?
Die Parameter werden genau dich die Software festgelegt.

von Das wüsstet ihr G. (critical_brain_error)


Lesenswert?

EAF schrieb:
> Das wüsstet ihr G. schrieb:
>> aber die Parität und Anzahl an Stopp-Bits steht nicht bei mir als
>> auch nicht bei Arduino im Quellcode.
>
> Dann gehe von 8N1 aus.
>
> Was anderes scheint nicht vorgesehen zu sein.

Gut ich probiers Danke 🤗

von Achnee (Gast)


Lesenswert?

Wolfgang schrieb:
> Die Parameter werden genau dich die Software festgelegt.

Tatsächlich werden sie auch im Sourcecode nicht erwähnt.

https://github.com/arduino/ArduinoCore-avr/blob/master/libraries/SoftwareSerial/src/SoftwareSerial.cpp

In size_t SoftwareSerial::write(uint8_t b)

taucht immerhin als Kommentar auch, daß 8 Bits gesendet werden.

Von einem Stopbit ist keine Rede (aber das ergibt sich durch einen 
abschließenden Aufruf von tunedDelay)

Parity hingegen gibts keine.

Also: 8n1.

von Wolfgang (Gast)


Lesenswert?

Achnee schrieb:
> Von einem Stopbit ist keine Rede (aber das ergibt sich durch einen
> abschließenden Aufruf von tunedDelay)
> Parity hingegen gibts keine.
> Also: 8n1.

Mit einem angepassten Delay sind dann genauso gut zwei Stopbits möglich.

Und ob nun 8 oder 9 Bit übertragen werden, ist doch wohl auch anpassbar.

Was ist denn eigentlich das Problem?

von Arno (Gast)


Lesenswert?

Das Problem scheint mir zu sein, dass die Arduino-Bibliothek 
"SoftwareSerial" nicht dokumentiert, welche Kommunikationsparameter sie 
verwendet (oder ob man das anpassen kann, aber da die API keine solchen 
Möglichkeiten vorsieht, kann man wohl davon ausgehen, dass nicht - im 
Gegensatz zur "normalen" Serial: 
https://www.arduino.cc/reference/en/language/functions/communication/serial/begin/ 
- da ist das alles hübsch dokumentiert).

Dokumentation schreiben ist halt weniger beliebt als Code schreiben. Und 
gute Dokumentation ist schwieriger als funktionierender Code.

Wenn ich gerade bei github eingeloggt wäre, würde ich das schnell 
anpassen und einen PR einsenden.

MfG, Arno

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
Noch kein Account? Hier anmelden.