You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将WiFi信道切回1以恢复ESP-NOW通信?

解决ESP-NOW信道不匹配问题的步骤

核心原因

调用esp_wifi_disconnect()仅断开与AP的连接,WiFi模块仍会保留之前连接的AP信道(此处为11),而ESP-NOW需要工作在信道1,因此必须手动将WiFi信道切换回1。

具体实现步骤

  1. 确保断开WiFi连接
    先执行标准断开操作:

    esp_err_t err = esp_wifi_disconnect();
    if (err != ESP_OK) {
        ESP_LOGE("WIFI", "Disconnect failed: %s", esp_err_to_name(err));
    }
    
  2. 手动切换WiFi信道到1
    断开连接后,调用esp_wifi_set_channel()强制将信道设为1,指定单信道模式即可:

    err = esp_wifi_set_channel(1, WIFI_SECOND_CHAN_NONE);
    if (err != ESP_OK) {
        ESP_LOGE("WIFI", "Set channel failed: %s", esp_err_to_name(err));
    }
    
    • WIFI_SECOND_CHAN_NONE对应20MHz带宽,适配绝大多数ESP-NOW使用场景
  3. 同步ESP-NOW对等设备配置(可选)
    如果之前的对等设备信道配置因切换失效,可重新添加对等设备并明确指定信道1:

    esp_now_peer_info_t peer_info = {0};
    memcpy(peer_info.peer_addr, PEER_MAC_ADDRESS, ESP_NOW_ETH_ALEN);
    peer_info.channel = 1;
    peer_info.encrypt = false;
    err = esp_now_add_peer(&peer_info);
    if (err != ESP_OK && err != ESP_ERR_ESPNOW_EXIST) {
        ESP_LOGE("ESPNOW", "Add peer failed: %s", esp_err_to_name(err));
    }
    

完整流程示例

在你的WiFi断开函数末尾添加信道切换逻辑:

void disconnectFromMyWiFi() {
    ESP_LOGI("WIRELESS", "in disconnectFromMyWiFi()");
    esp_err_t err = esp_wifi_disconnect();
    if (err == ESP_OK) {
        ESP_LOGI("WIRELESS", "Wifi disconnect response: ESP_OK");
        // 切换信道回1
        err = esp_wifi_set_channel(1, WIFI_SECOND_CHAN_NONE);
        if (err != ESP_OK) {
            ESP_LOGE("WIRELESS", "Set channel to 1 failed: %s", esp_err_to_name(err));
        } else {
            ESP_LOGI("WIRELESS", "Switched WiFi channel back to 1");
        }
    } else {
        ESP_LOGE("WIRELESS", "Wifi disconnect failed: %s", esp_err_to_name(err));
    }
}

关键注意事项

  • 确保所有ESP-NOW节点都统一使用信道1,否则即使本地信道切回,仍会出现信道不匹配错误。
  • 如果设备以AP模式运行ESP-NOW,切换信道前需先将WiFi模式设为WIFI_MODE_AP,再执行信道设置。

内容的提问来源于stack exchange,提问作者chrispitzer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 22:00:52