Wie man den ESP32-Fehler behebt: 'GPIO' was not declared in this scope

Problem

Sie verwenden schnelles IO auf dem ESP32 wie folgt:

gpio_struct_include.cpp
GPIO.out_w1ts = ((uint32_t)1 << pin);

aber wenn Sie versuchen, es zu kompilieren, sehen Sie eine Fehlermeldung wie

gpio_not_declared_error.txt
.pio/libdeps/esp32dev/Dali/src/DaliBus.h:84:9: error: 'GPIO' was not declared in this scope
   84 |         GPIO.out_w1ts = ((uint32_t)1 << pin);
      |         ^~~~

Lösung

Dieses Problem tritt mit neueren Versionen von entweder Arduino-ESP32 oder ESP-IDF auf. Die Behebung ist einfach: Fügen Sie einfach

gpio_struct_include_fix.cpp
#include <soc/gpio_struct.h>

ein.


Check out similar posts by category: ESP32