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

ESP32调用WiFi.begin后ESP-NOW失效,能否同时使用二者?

ESP32同时使用WiFi与ESP-NOW的解决方案

可以同时使用WiFi与ESP-NOW,你的问题源于WiFi连接后的配置冲突,以下是具体修复步骤:

  • 调整初始化顺序:先执行WiFi.begin(ssid,password),等待WiFi连接成功(通过WiFi.status() == WL_CONNECTED判断)后,再初始化ESP-NOW。ESP-NOW支持WiFi Station模式,无需切换到其他模式。
  • 统一WiFi信道:ESP-NOW与WiFi共享同一信道,必须保证发送端和接收端处于同一信道。
    • 发送端连接WiFi后,通过int channel = WiFi.channel();获取当前信道。
    • 接收端即使不需要连网,也要设置为WiFi STA模式,并切换到对应信道:
      WiFi.mode(WIFI_STA);
      WiFi.disconnect(); // 无需实际连网
      WiFi.setChannel(channel); // channel为发送端获取的信道值
      
  • 校验配对MAC地址:确认接收端ESP32的MAC地址已正确添加到发送端的ESP-NOW配对列表中,MAC地址格式要准确(无多余字符、大小写一致)。
  • 检查ESP-NOW回调与初始化:确保发送端注册了正确的发送状态回调函数,便于排查传输失败原因:
    void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {
      Serial.print("发送状态:");
      Serial.println(status == ESP_NOW_SEND_SUCCESS ? "成功" : "失败");
    }
    
    初始化ESP-NOW时,绑定该回调函数:esp_now_register_send_cb(OnDataSent);
  • 保证供电稳定:WiFi与ESP-NOW同时工作会增加功耗,建议使用5V/2A的电源适配器为ESP32供电,避免因供电不足导致通信异常。

在你的RFID门禁场景中,第一块ESP32作为WiFi Station联网查询UID合法性,同时作为ESP-NOW发送端;第二块ESP32保持WiFi STA模式(无需连网)并匹配信道,作为ESP-NOW接收端,即可实现两种功能同时运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:42:53