esp_wifi_set_config方法需要一个wifi_interface_t类型的接口参数。
我的配置是从esp32示例页面上的两个示例中合并而成的,其中包含了相应的配置参数。但是我不确定我应该从上面传递什么样的接口模式来设置配置。我想要一个WIFI_IF_AP_STA之类的。
wifi_config_t wifi_config = {
.ap = {
.ssid = ESP_AP_WIFI_SSID,
.ssid_len = strlen(ESP_AP_WIFI_SSID),
.channel = ESP_AP_WIFI_CHANNEL,
.password = ESP_AP_WIFI_PASS,
.max_connection = AP_MAX_STA_CONN,
.authmode = WIFI_AUTH_WPA_WPA2_PSK
},
.sta = {
.ssid = ESP_STA_WIFI_SSID,
.password = ESP_STA_WIFI_PASS,
.threshold.authmode = WIFI_AUTH_WPA2_PSK,
.pmf_cfg = {
.capable = true,
.required = false
},
},
};
ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_APSTA));
ESP_ERROR_CHECK(esp_wifi_set_config(
**WHAT DO I PUT HERE? [WIFI_IF_STA : WIFI_IF_AP]
, &wifi_config));
ESP_ERROR_CHECK(esp_wifi_start());发布于 2021-02-18 15:15:35
首先,请注意,wifi_config_t不是一个包含两个成员的结构。这是一个联合,这意味着您可以存储AP或STA配置,但不能同时存储。因此,您需要创建两个不同的配置结构,每个模式一个。
至于您的混淆,根据示例这里,您调用esp_wifi_set_config()两次-一次用于AP,一次用于STA。
wifi_config_t ap_config = {
.ap = {
.ssid = ESP_AP_WIFI_SSID,
.ssid_len = strlen(ESP_AP_WIFI_SSID),
.channel = ESP_AP_WIFI_CHANNEL,
.password = ESP_AP_WIFI_PASS,
.max_connection = AP_MAX_STA_CONN,
.authmode = WIFI_AUTH_WPA_WPA2_PSK
}
};
wifi_config_t sta_config = {
.sta = {
.ssid = ESP_STA_WIFI_SSID,
.password = ESP_STA_WIFI_PASS,
.threshold.authmode = WIFI_AUTH_WPA2_PSK,
.pmf_cfg = {
.capable = true,
.required = false
}
}
};
...
ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_AP, &ap_config));
ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_STA, &sta_config));https://stackoverflow.com/questions/66258365
复制相似问题