Serial.readstringuntil() ESP8266 Problem

Hi Leute.... Ich hätte nie gedacht, dass ich mit dem Arduino Plattform anfangen werde...

Ich finde es super damit zu arbeiten.

Nun stehe ich im Klemme.

Ich programmiere gerade mein ESP8266 (Wifi Modul). Es soll einen Telegram von MCU bekommen.

Das Auslesen vom Seriellen Schnittstelle (UART) geht klasse.

Jedoch sobald einen (0x00) im String auftaucht, kommen danach nur nullen.

So musste kommen:

0x23 0x33 0x44 0x00 0x11 0x22 0x33 0x44 0x55 0x0D

So kommt das String. 0x23 0x33 0x44 0x00 0x00 0x00 0x00 0x00 0x00 0x0D

Ich dachte die Funktion (Serial.readstringuntil(terminator)) liest das Stream bis das "Terminator" auftaucht !

Oder habe ich was falsches gemacht !?

MFG

Das geht nicht weil C Strings Null-terminiert sind. Und auch in der Arduino String Klasse steckt letztlich nur ein C String.

Aber wieso liest du einen String ein wenn du eigentlich Bytes willst? Nimm ein Byte Array und verwende readBytes() oder readBytesUntil()

Ohyeee... Wie ich erwähnt habe. Noch Einsteiger in Arduino Welt. Ich habe gerade gesehen, dass andere Funktionen gibt.. Ich denke Serial.readBytes() wäre das passende für mich.

nimm ne blockierungsfreie Routine, wie schon mehrfach hier im Forum besprochen.

Diese Arduino Komfort Befehle machen über kurz oder lang mehr Probleme als sie nutzen.