乐鑫技术交流
直播中

大彭

10年用户 1064经验值
擅长:电源/新能源 嵌入式技术
私信 关注
[问答]

wifi模式设置静态IP地址失败是哪里出了问题?

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 没有出现问题。


更多回帖

发帖
×
20
完善资料,
赚取积分