该esp_wifi_set_config方法需要类型的接口参数wifi_interface_t。这个枚举值[WIFI_IF_STA || WIFI_IF_AP]
我将配置从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());
首先,请注意这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));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句