ESP8266 RTOSSDK Smartlink配网后连接失败BUG

在rtossdk3.x下,8266smartlink配网,回调中得到的pdata,不能直接用来进行esp_wifi_connect,否则会导致一直WIFI_REASON_NO_AP_FOUND错误。只留ssid和passowrd,就正常了。


对于2.4G和5G混合的wifi,容易出现此问题。2.4g的路由器没此问题,估计是mac的问题。。

 

        case SC_STATUS_LINK:
            ESP_LOGI(TAG, "SC_STATUS_LINK");
            wifi_config_t *wifi_config = pdata;
            ESP_LOGI(TAG, "SSID:%s", wifi_config->sta.ssid);
            ESP_LOGI(TAG, "PASSWORD:%s", wifi_config->sta.password);
            /* 复制一下 */
            memcpy(system_data_t.ssid,wifi_config->sta.ssid,32);
            memcpy(system_data_t.password,wifi_config->sta.password,64);

            /* 停止martlink */
            //esp_smartconfig_stop();

            ///>注意这里,如果直接使用pdata的wifi_config,会导致出现找不到路由器的201错误!!!!!!是mac的问题??
            wifi_config_t wifi_config_temp;
            memset(&wifi_config_temp,0,sizeof(wifi_config_temp));
            
            memcpy(wifi_config_temp.sta.ssid,wifi_config->sta.ssid,32);
            memcpy(wifi_config_temp.sta.password,wifi_config->sta.password,64);
            
            
            ESP_ERROR_CHECK( esp_wifi_disconnect() );
            ESP_ERROR_CHECK( esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config_temp) );
            ESP_ERROR_CHECK( esp_wifi_connect() );

 

posted @ 2020-12-22 20:20  XZHDJH  阅读(834)  评论(0)    收藏  举报