Как исправить ошибку ESP32: 'GPIO' was not declared in this scope

Проблема

Вы используете быстрый ввод-вывод на ESP32 вот так:

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

но при попытке скомпилировать это вы видите сообщение об ошибке, такое как

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);
      |         ^~~~

Решение

Эта проблема возникает с более новыми версиями Arduino-ESP32 или ESP-IDF. Исправить это просто: просто подключите

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

Check out similar posts by category: ESP32