LilyGo T-Display-S3: gpio_get_level / gpio_ll_get_level Fehler beheben

Das LilyGo T-Display-S3 gibt es in zwei verschiedenen Varianten und ist sowohl mit als auch ohne Touchscreen erhältlich. Das Board besteht aus einem ESP32-Mikrocontroller sowie einem bereits vorinstallierten 1.9" großen IPS-Display mit einer Auflösung von 170 x 320 Pixeln. Doch beim programmieren mit der TFT_eSPI Library kann es unter umständen durchaus zu Problemen kommen, wie etwa dem gpio_get_level bzw. gpio_ll_get_level Fehler in der Arduino IDE. In dieser Anleitung möchten wir euch daher Hilfestellung bieten wie ihr diesen beheben könnt.

Das Problem äußert sich mit durch die folgenden Fehlermeldungen:

In file included from /Users/User/Documents/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:20:

/Users/User/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.c: In member function 'uint8_t TFT_eSPI::readByte()':

/Users/User/Documents/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32_S3.c:96:8: error: 'gpio_get_level' was not declared in this scope; did you mean 'gpio_ll_get_level'?

96 | b= gpio_get_level((gpio_num_t)TFT_D0); // Read three times to allow for bus access time

|^~~~~~~~~~~~~~

|gpio_ll_get_level

exit status 1

Compilation error: exit status 1

 

Stellt zunächst sicher, dass die richtige Konfigurationsdatei ausgewählt wurde, dazu editiert ihr die User_Setup_Select.h im Verzeichnis /.../Arduino/libraries/TFT_eSPI/ und fügt zwei // in Zeile 27 hinzu um den bisherigen Eintrag #include <User_Setup.h> auszukommentieren.

Danach werden wir den Eintrag in Zeile 133 entkommentieren und die // entfernen, sodass die passende Konfigurationsdatei geladen wird:

#include <User_Setups/Setup206_LilyGo_T_Display_S3.h>     // For the LilyGo T-Display S3 based ESP32S3 with ST7789 170 x 320 TFT

 

Fehler beheben - so geht's

Der eigentliche, oben beschriebene, Fehler lässt sich beheben indem man eine Änderung an der TFT_eSPI Library vornimmt, dazu navigieren wir in das folgende Verzeichnis: /.../Arduino/libraries/TFT_eSPI/Processors/ und suchen dort nach der Datei TFT_eSPI_ESP32_S3.h, dort angekommen müssen wir in Zeile 17 jetzt noch den Eintrag #include "driver/gpio.h" hinzufügen, sodass der komplette Absatz dann wie folgt aussieht:

// Include processor specific header
#include "soc/spi_reg.h"
#include "driver/spi_master.h"
#include "hal/gpio_ll.h"
#include "driver/gpio.h"

Speichert die Datei anschließend ab und probiert euren Code erneut auf das LilyGo T-Display-S3 zu laden, im Normalfall sollte dies nun ohne weitere Fehlermeldungen funktionieren.

Stefan Kröll

Über den Autor

Gründer von Xgadget.de und IT-Experte mit über 15 Jahren Erfahrung in den Bereichen macOS, Windows und Smart Home. Als leidenschaftlicher Tech-Enthusiast zudem auch spezialisiert auf Raspberry Pi Projekte und individuelle IT-Lösungen, um komplexe Technik für Anwender verständlich und nutzbar zu machen.

Alle Artikel von Stefan Kröll →
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

* gesponserter Link
Blogverzeichnis - Bloggerei.de