ESP-IDF:无法连接长SSID名称的WIFI

问题描述 投票:0回答:1

ESP32 无法连接长 wifi SSID。

使用更长的 SSID 名称和密码创建 WiFi 热点。

示例:

ssid="abcdefghijklmnopqrstuvwxyz1234"

密码=“TestPassword@abcdefghijklmnopqrstuvwxyz1234”

下面的代码适用于小型 WiFi SSID [最多约 25 个字符长]。但无法连接更长的WiFi SSID

ReturnCode WifiMgr::StartConnect(char* ssid, char* pw) {
esp_err_t err = ESP_OK;
wifi_config_t wifi_config{};

strlcpy(reinterpret_cast<char*>(wifi_config.sta.ssid), ssid);
strlcpy(reinterpret_cast<char*>(wifi_config.sta.password), pw);

if (err == ESP_OK) {
    err = esp_wifi_set_config(WIFI_IF_STA, &wifi_config);
    if (err != ESP_OK) {
        LogError(("esp_wifi_set_config() failed: %s", esp_err_to_name(err)));
    }
}

if (err == ESP_OK) {
    connecting_ = true;

    LogInfo(("StartConnect(): Attempting to connect to ssid: %s", wifi_config.sta.ssid));

    err = esp_wifi_connect();
    if (err != ESP_OK) {
        LogError(("esp_wifi_connect() failed: %s", esp_err_to_name(err)));

        connecting_ = false;
    }
}

return (err == ESP_OK) ? ReturnCode::kSuccess : ReturnCode::kFailure;
}

Wifi 事件处理程序代码如下

    void WifiMgr::WifiEventHandler(int32_t event_id, void* event_data) {

.....My tre code .....

    switch (event_id) {
        case WIFI_EVENT_SCAN_DONE:
            .....My tre code .....
            break;
        case WIFI_EVENT_STA_START:
            .....My tre code .....
            break;
        case WIFI_EVENT_STA_STOP:
            .....My tre code .....
            break;
        case WIFI_EVENT_STA_CONNECTED:
            ///// print connected
            break;
        case WIFI_EVENT_STA_DISCONNECTED:
            LogInfo(("WIFI_EVENT_STA_DISCONNECTED: ssid: %.*s reason: %d", info.disconnected->ssid_len, reinterpret_cast<char*>(info.disconnected->ssid), info.disconnected->reason));
            .....My tre code .....
            break;
        default:
            break;
    }
.....My tre code .....

}
esp32 freertos
1个回答
0
投票

根据文档,SSID 值的最大长度为 32,密码的最大长度为 64。

© www.soinside.com 2019 - 2024. All rights reserved.