Как исправить ошибку ESP-IDF: cannot convert 'esp_interface_t' to 'wifi_interface_t'

Проблема:

При попытке компиляции вашего ESP-IDF-приложения с использованием кода, например

esp_wifi_set_config_error.cpp
ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config));

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

espidf_error_build_output.txt
src/main.cpp:76:41: error: cannot convert 'esp_interface_t' to 'wifi_interface_t'
    76 |     ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config));
         |                                         ^~~~~~~~~~~~~~~
         |                                         |
         |                                         esp_interface_t

Решение

Вместо ESP_IF_WIFI_STA используйте WIFI_IF_STA (который имеет правильный тип):

esp_wifi_set_config_fix.cpp
ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_STA, &wifi_config));

Check out similar posts by category: C/C++ ESP8266/ESP32