完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
wifi模式在进入连接注册事件回调函数里调用设置静态IP函数,函数如下:
static void wifi_connected_handler(void *arg, esp_event_base_t event_base, int32_t event_id, void *event_data) { app_set_static_ip(arg); } static void app_set_static_ip(esp_netif_t *netif) { if (esp_netif_dhcpc_stop(netif) != ESP_OK) { ESP_LOGE(TAG, "Failed to stop dhcp client"); return; } esp_netif_ip_info_t ip; memset(&ip, 0 , sizeof(esp_netif_ip_info_t)); ip.ip.addr = app_static_ip.ip.addr; ip.netmask.addr = app_static_ip.netmask.addr; ip.gw.addr = app_static_ip.gw.addr; if (esp_netif_set_ip_info(netif, &ip) != ESP_OK) { ESP_LOGE(TAG, "Failed to set ip info"); return; } ESP_ERROR_CHECK(app_set_dns_server(netif, app_static_ip.gw.addr, ESP_NETIF_DNS_MAIN)); ESP_ERROR_CHECK(app_set_dns_server(netif, ipaddr_addr("0.0.0.0"), ESP_NETIF_DNS_BACKUP)); } 问题出现在调用这个函数 esp_netif_dhcpc_stop(netif) 后,系统死机复位。这边试过使用以太网,同样在连接成功回调函数调用dhcp_stop 没有出现问题。 请技术支持分析下问题,急! |
|
相关推荐
1个回答
|
|
|
现在我们来分析可能导致设置静态IP地址失败的原因:
1. **参数错误**:确保在调用 `app_set_static_ip` 函数时,传入的 `esp_netif_t *netif` 参数是正确的。如果参数错误,可能导致设置失败。 2. **IP地址冲突**:如果设置的静态IP地址与局域网内的其他设备IP地址冲突,可能导致设置失败。确保选择一个不冲突的IP地址。 3. **子网掩码或网关设置错误**:在设置静态IP地址时,还需要设置子网掩码和网关。如果这些设置错误,可能导致网络连接失败。请检查这些设置是否正确。 4. **DNS服务器设置错误**:虽然不是设置静态IP地址的直接原因,但错误的DNS服务器设置可能导致网络连接问题。请检查DNS服务器设置是否正确。 5. **网络接口未初始化或未连接**:在调用 `app_set_static_ip` 函数之前,请确保网络接口已初始化并成功连接到WiFi网络。 6. **代码逻辑错误**:检查 `app_set_static_ip` 函数内部的逻辑是否正确。例如,确保在设置IP地址之前调用了 `esp_netif_dhcpc_stop` 函数,以停止DHCP客户端。 7. **ESP32固件或ESP-IDF版本问题**:如果您使用的ESP32固件或ESP-IDF版本存在已知的bug,可能导致设置静态IP地址失败。尝试更新到最新版本。 8. **硬件问题**:虽然不太可能,但硬件问题(如WiFi模块损坏)也可能导致设置静态IP地址失败。 为了解决这个问题,您可以按照以下步骤进行调试: 1. 检查 `wifi_connected_handler` 和 `app_set_static_ip` 函数的参数是否正确。 2. 确保设置的静态IP地址、子网掩码、网关和DNS服务器地址正确无误。 3. 在 `app_set_static_ip` 函数中添加日志输出,以便跟踪设置过程中的任何错误或问题。 4. 检查网络接口是否已初始化并成功连接到WiFi网络。 5. 如果问题仍然存在,请尝试更新ESP32固件和ESP-IDF版本。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
933 浏览 0 评论
1653 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1284 浏览 1 评论
1218 浏览 1 评论
4959 浏览 2 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1249浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
927浏览 3评论
2329浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2524浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1051浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 18:36 , Processed in 0.582993 second(s), Total 40, Slave 33 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
485
