WIFI
ESP32-C5作为STA时,连接目标为双频合一路由器,此时模块会优先连接2.4G还是5G?
当 5G 与 2.4G 的 RSSI 值相同时,系统默认优先连接 5G ,若两者 RSSI 不同,系统会引入 rssi_5g_adjustment(单位:dBm)参数进行补偿。只有当 5G 的 实际信号强度低于 2.4G 的信号强度减去 rssi_5g_adjustment 的值时,模块才会切换至 2.4G。
因此,双频合一时常规情况信号强度是相同的,所以此情况下ESP32-C5会优先连接5G。
ESP32-S3芯片生产时WiFi是否需要校准?
生产时不需要校准,乐鑫的WiFi芯片有内部自动校准机制,软件初始化的时候会进行自校准,生产的时候不需要校准。
ESP32 进行 Wi-Fi 连接时,认证模式应该如何配置?“AUTH OPEN” 是否兼容所有模式?
Wi-Fi 连接时,认证模式应与路由器实际使用的认证模式保持一致。
如果将模组的 Wi-Fi 认证模式设置为 WIFI_AUTH_OPEN,通常也可以兼容大多数路由器认证模式;但有一个特例:自 ESP-IDF v5.0 起,如果需要连接 WEP/WPA 网络,必须显式将 authmode 设置为 WIFI_AUTH_WEP 或 WIFI_AUTH_WPA_PSK。
ESP-NOW 协议与 Wi-Fi Station 模式能否共存并同时工作?
可以共存并同时工作。
需要注意的是:ESP-NOW 的工作信道必须与当前连接 AP 的信道保持一致。设备作为 Station 连接路由器后,Wi-Fi 信道由 AP 决定,因此 ESP-NOW 通信也需要跟随该信道。
ESP32 对 WAPI 协议的支持范围如何?是否支持 SM2/SM4 算法?
ESP32 仅支持 WAPI-PSK(预共享密钥)认证模式,不支持 WAPI-CERT(数字证书)认证模式。
加密算法方面,ESP32 支持 SM4,但该能力仅用于 Wi-Fi 协议栈内部的 WAPI-PSK 加密,应用层无法绕过 Wi-Fi 协议栈直接调用。ESP32 不支持 SM2。
如果业务需要 WAPI-CERT 或 SM2 支持,需要通过外部安全方案或 AP 侧能力实现。
模组禁用 UART0 打印功能后,为什么无法进行 Wi-Fi 射频测试?
模组射频测试上位机 EspRFTestTool 通过 UART0 向芯片发送测试指令并接收响应。禁用 UART0 后,射频测试固件无法正常接收上位机指令,上位机也无法获取芯片返回的数据,因此测试无法继续。
进行 Wi-Fi 射频测试时,需要保留 UART0 的通信能力,确保 EspRFTestTool 可以通过 UART0 与测试固件正常交互。
Wi-Fi 同时启用 STA 和 AP 模式时,STA 扫描或连接不存在的 AP 会导致本机 AP 暂时关闭,如何处理?
ESP32 系列芯片采用单天线设计。设备同时运行 STA 和 AP 模式时,STA 扫描信道或尝试连接目标 AP 会占用天线资源,因此本机 AP 无法在该时段持续工作,可能表现为暂时关闭或客户端短时断开。
该现象由单天线硬件资源限制决定,目前没有能够完全消除影响的软件方案。设计业务流程时,应考虑 STA 扫描或重连期间对 AP 可用性的影响,例如避免频繁扫描,并在应用层允许客户端重连。
在 ESP32-P4 + ESP32-C5 Hosted 方案中,ESP32-P4 开启 SoftAP 后最多只能同时连接 12 个 STA,如何解决?
现象描述:
在 ESP-IDF v5.5.4 环境中,单独使用 ESP32-C5 开启 SoftAP 时,可同时连接 15 个 STA;改用 ESP32-P4 + ESP32-C5 Hosted 方案并由 ESP32-P4 开启 SoftAP 后,最多只能同时连接 12 个 STA。将 ESP32-P4 端 Component config > Wi-Fi Remote > Enable Wi-Fi Remote component > Wi-Fi configuration > Maximum espnow encrypt peers number 设置为 2,并将 ESP32-C5 从机端 Component config > Wi-Fi > Maximum espnow encrypt peers number 设置为 2 后,ESP32-C5 输出以下日志:
W (278329) wifi:packet allocation failed
W (278329) wifi:packet allocation failed
I (278331) wifi:removing station <4e:f1:0b:60:d4:7e> after unsuccessful auth/assoc, AID = 0
W (278334) wifi:rm mis
W (282409) wifi:packet allocation failed
W (282409) wifi:packet allocation failed
I (282410) wifi:removing station <4e:f1:0b:60:d4:7e> after unsuccessful auth/assoc, AID = 0
W (282414) wifi:rm mis
原因分析:
日志中的 wifi:packet allocation failed 表明动态分配管理帧失败。该问题由可用内存不足引起,导致部分 STA 无法完成认证或关联。
解决方案:
将以下配置项设置为 n,以优化内存使用:
CONFIG_FREERTOS_IN_IRAM=n
CONFIG_ESP_WIFI_IRAM_OPT=n
CONFIG_ESP_WIFI_EXTRA_IRAM_OPT=n
CONFIG_ESP_WIFI_RX_IRAM_OPT=n
CONFIG_ESP_WIFI_SLP_IRAM_OPT=n
CONFIG_PM_SLEEP_FUNC_IN_IRAM=n
CONFIG_PM_SLP_IRAM_OPT=n
CONFIG_ESP_TIMER_IN_IRAM=n
乐鑫模组配网时,是否支持连接 SSID 中包含 Emoji 等特殊字符的 AP?
ESP32 和 ESP8266 均支持 UTF-8 编码,Emoji 属于 Unicode 字符,通常使用 UTF-8 编码表示。ESP-IDF Wi-Fi API(如 esp_wifi_set_config())在设置 SSID 时,本质上是将字节数组传递至底层。因此,在两端编码一致且 SSID 总长度不超过 32 字节的情况下,可尝试连接。
实际能否成功连接,还取决于路由器或热点端是否支持该 SSID 编码,以及 AP 与模组的编码是否一致。
ESP32-C5 是否支持 2.4 GHz 和 5 GHz 双频 Wi-Fi 同时工作?如何配置工作频段?
原因分析:
ESP32-C5 目前不支持 2.4 GHz 和 5 GHz 双频同时工作,同一时刻只能在一个频段工作,两个频段之间采用分时复用方式。
解决方案:
使用 esp_wifi_set_band_mode() 设置工作频段:
- 默认值为
WIFI_BAND_MODE_AUTO,会扫描 2.4 GHz 和 5 GHz 频段;当环境中存在多个同名热点时,选择 RSSI 最好的热点连接。 - 设置为
WIFI_BAND_MODE_2G_ONLY时,仅连接 2.4 GHz 热点。 - 设置为
WIFI_BAND_MODE_5G_ONLY时,仅连接 5 GHz 热点。 - 对于双频合一热点,可通过
wifi_scan_threshold_t中的rssi_5g_adjustment参数调整偏移量,以决定优先连接 2.4 GHz 或 5 GHz 热点。
是否提供直接获取指定 AP RSSI 的接口?
原因分析:
目前没有专门用于查询指定 AP RSSI 的接口。
解决方案:
- 查询当前已连接 AP 的 RSSI:调用
esp_wifi_sta_get_rssi(),该接口返回当前连接 AP 的 RSSI。 - 查询周边其他 AP 的 RSSI:执行 Wi-Fi 扫描。可参考 ESP-IDF 的 scan 示例,先调用
esp_wifi_scan_start()发起扫描,再调用esp_wifi_scan_get_ap_records()获取wifi_ap_record_t结果列表。根据目标 AP 的 SSID 或 BSSID 匹配记录后,读取对应的 RSSI 字段。