wifi初始化順序必須是
void wifi_init(void){
ESP_ERROR_CHECK(esp_netif_init()); // 初始化tcp/ip協(xié)議棧
ESP_ERROR_CHECK(esp_event_loop_create_default()); // 創(chuàng)建一個(gè)默認(rèn)得事件循環(huán)
esp_netif_t *sta_netif = esp_netif_create_default_wifi_sta(); // 創(chuàng)建一個(gè)默認(rèn)得station esp_netif_destroy 這個(gè)調(diào)用必須在上個(gè)后面。。客扎。浪漠。不然不能獲取ip IP_EVENT_STA_GOT_IP
assert(sta_netif);
s_wifi_event_group = xEventGroupCreate(); // 創(chuàng)建一個(gè)事件組句柄 / vEventGroupDelete
ESP_ERROR_CHECK( esp_event_handler_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &event_handler, NULL) ); // esp_event_handler_unregister 但是應(yīng)該沒有必要unregister把撒犀。
ESP_ERROR_CHECK( esp_event_handler_register(IP_EVENT, IP_EVENT_STA_GOT_IP, &event_handler, NULL) );
ESP_ERROR_CHECK( esp_event_handler_register(SC_EVENT, ESP_EVENT_ANY_ID, &event_handler, NULL) );
wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
ESP_ERROR_CHECK( esp_wifi_init(&cfg) ); // esp_wifi_deinit
ESP_ERROR_CHECK( esp_smartconfig_set_type(SC_TYPE_ESPTOUCH) );
}
esp_netif_create_default_wifi_sta() 必須放在esp_event_loop_create_default()后面藻肄。