It didn’t work like this:
Part of code like this:
uint16_t to_connect_wifi(const char* ssid, const char* pwd)
{
wifi_config_t wifi_config;
memset(wifi_config.sta.ssid,0,sizeof(wifi_config.sta.ssid));
memset(wifi_config.sta.password,0,sizeof(wifi_config.sta.password));
strcpy((char*)(wifi_config.sta.ssid),ssid);
strcpy((char*)(wifi_config.sta.password),pwd);
ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config1));
esp_wifi_connect();
}
but it worked if i used this code
#define EXAMPLE_WIFI_SSID "XXX"
#define EXAMPLE_WIFI_PASS "XXXXXX"
wifi_config_t wifi_config1 = {
.sta = {
.ssid = EXAMPLE_WIFI_SSID,
.password = EXAMPLE_WIFI_PASS,
},
};
Actually both of two situation the wifi_config has the same value:
I print the wifi_config like this:
uint8_t i = 0;
for(i = 0; i < 32; i++)printf("%c", wifi_config.sta.ssid[i]);
printf("\n");
for(i = 0; i < 64; i++)printf("%c", wifi_config.sta.password[i]);
printf("\n");
for(i = 0; i < 32; i++)printf("%c", wifi_config1.sta.ssid[i]);
printf("\n");
for(i = 0; i < 64; i++)printf("%c", wifi_config1.sta.password[i]);
printf("\n");
(to make code brief, I omitted some bracket)
It’s outputs:
WIFI�������������������������
123456789��������������������������������������������������������
WIFI�������������������������
123456789��������������������������������������������������������
// � is a nan character