Serial Display Code umschreiben auf Serial? Kann das jemand?

Gast #7704870
Lesenswert?

Hallo,

Vor 3 Jahren stand ich vor dem gleichen Problem, da ich kein C++ kann und es auch nicht mehr lernen werde, weil ich es (fast) nie brauche im Hobby.

Leider hat der Autor diese SoftwareSerial verwendet, die aber nunmal bei esp32 nicht brauchbar ist. Es geht vermutlich nur um wenige Zeilen, die auf die Serial2 des ESP32 umgeschrieben werden müssen. Meine Versuche schlugen fehl, da schon die Compilerfehler für mich böhmische Dörfer sind.

Chat GPT 4.0 ist damit auch überfordert, C kriegt er noch ganz gut hin, bei C++ spuckt er nur Mist aus.

Kann das jemand auf die normale Serial bzw Serial2 von Arduino umschreiben, so dass das neue Objekt myTFT alle Eigenschaften von Serial2 erbt und die neuen noch mit dazu, die in den Methoden formuliert sind?

Warum der Construktor leer ist aber rxd und txd übergeben werden können verstehe ich auch nicht.

https://github.com/plouc68000/OS_SerialTFT

1
private:
2
  SoftwareSerial myTFT;
3
  char feedbackBuf[6];

und

1
SerialTFT::SerialTFT(uint8_t rxd, uint8_t txd):myTFT(txd, rxd)
2
{
3
  
4
}
5
void SerialTFT::begin(long speed)
6
{
7
  myTFT.begin(speed);
8
}
#7704893
Lesenswert?

Thorsten M. schrieb:

Warum der Construktor leer ist aber rxd und txd übergeben werden können verstehe ich auch nicht.

| SerialTFT::SerialTFT(uint8_t rxd, uint8_t txd):myTFT(txd, rxd){}

Der ist nicht leer, sondern das Konstrukt nach dem Doppelpunkt besagt, dass er seinen privaten Member "myTFT" mit eben den übergebenen Argumenten txd, rxd konstruiert (und damit initilialisiert).

HTH;(re)

#7705210
Lesenswert?

Was macht "myTFT"? Warum ist das vom Typ SoftSerial?

Welche anderen Klassen, die mit seriellen Übertragungen arbeiten, gibt es sonst noch?

Welche Funktionen ("Methoden") stellen die zur Verfügung?

Welche Funktionen ("Methoden"), die SoftSerial zur Verfügung stellt, werden über "myTFT" in SerialTFT verwendet?

Diese Fragen solltest Du selbst beantworten können. Wenn Du das getan hast, solltest Du selbst die nötigen Rückschlüsse ziehen können.

Gast #7705231
Lesenswert?

Top S. schrieb:

Was passiert den wenn SoftwareSerial myTFT; zu Serial2 myTFT; wird?

Ein Kompilerfehler, dass Serial2 keine Klasse ist aus der Vererbt werden kann. Ich arbeite das aber alles jetzt um, weg von C++ in eigene Routinen da mein Möglichkeiten ausgereizt sind das zu ändern.

Gast #7705238
Lesenswert?

https://github.com/arduino/ArduinoCore-avr/blob/master/cores/arduino/HardwareSerial.cpp

Die Verwendung von HardwareSerial unterscheidet sich grundlegend von SoftwareSerial. HardwareSerial ist keine eigenständige Bibliothek, sondern eine in der Arduino-Kernbibliothek enthaltene abstrakte Klasse, die die Schnittstelle für die serielle Kommunikation über die Hardware-UART-Schnittstelle des Mikrocontrollers definiert.

Sowas funktioniert aber das hat nichts mit Serial2 zu tun, da das bereits eine abgeleitete Klasse ist, die direkt gloabl verfügbar ist und deren Methoden verwendet werden können.

class MySerial : public HardwareSerial { public: MySerial(uint8_t portNum) : HardwareSerial(portNum) {}

1
// Implementierung der reinen virtuellen Funktionen
2
void begin(unsigned long baud) override;
3
void end() override;
4
usw usw.

};

#7705600
Lesenswert?

Thorsten M. schrieb:

Norbert schrieb:

Dummschwätzer!

https://de.trustpilot.com/review/www.mikrocontroller.net

Immer wieder lustig, weil eigentlich niemand so ein Bewertungsportal für ein Forum braucht. Sowas brauchen nur dünnhäutige Menschen, die nicht mal Kritik (im falschen Ton) ertragen.

Miestens kommt doch vor einer unfreundlichen Antwort irgendwas, was man mit minimalem Googlen herausfinden könnte, oder auf Bequemlichkeit basiert, umn dann auch noch in einem Kauderwelsch angefragt wird, was keiner versteht.

Und dann gibt's ne miese Bewertung...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren