如何修复 esp_eth_new_netif_glue() 返回 NULL
问题
使用 esp_eth_new_netif_glue() 初始化 ESP32 的以太网接口时,你得到一个 NULL 指针返回。
esp_eth_fix.cpp
esp_eth_netif_glue_handle_t netif_glue = esp_eth_new_netif_glue(eth_handle);
if(netif_glue == nullptr) {
log_e("esp_eth_new_netif_glue failed");
}解决方案
此失败的典型原因是默认事件循环未运行,这反过来导致 esp_event_handler_instance_register() 以 ESP_ERR_INVALID_STATE 失败。
在调用 esp_eth_new_netif_glue() 之前启动默认事件循环:
esp_event_loop_create_default.cpp
esp_err_t err = esp_event_loop_create_default();
if(err != ESP_OK) {
log_e("esp_event_loop_create_default failed");
return;
}If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow