Der Grund dafür
liegt darin, dass die Serial class nichts davon selbst tut
Serial ist nur ein kleines Konstrukt, das verschiedene Dinge zusammenbringt.
So ist z.B. readStringUntil gar nicht aus Serial, sondern aus Stream
https://www.arduino.cc/en/Reference/Stream
Das man es in Serial benutzen kann liegt daran, dass ein Serial objekt auch ein Stream ist, durch C++ Vererbung.
Dass ein Serial Objekt mit dem UART des konkreten Arduino sprechen kann, liegt daran, dass es auch ein HardwareSerial Objekt ist. Und unter diesen HardwareSerial Objekten liegen C, nicht C++, Funktionen aus den entsprechenden Arduino Cores, die gibt es für die verschiedene Controller.
Durch diese Architektur gibt es Dinge wie ESP32 in Arduino, weil die diese Dinge einfach mitbenutzen können, obwohl was anderes drunterliegt. Da gibt es nicht die "Super Arduino Entwickler", die das alles zusammenhalten.
Lesezeichen