ESP32 的 Wi-Fi 与 BLE 共存时,吞吐量骤降通常源于射频资源竞争。核心配置是使用 `esp_coex_adapter` 和 `esp_coex_priority_set` API 设置优先级。推荐将 Wi-Fi 设为高优先级(如 `ESP_COEX_PREFER_WIFI`),BLE 设为低优先级,以保障 Wi-Fi 吞吐。同时,启用共存机制:在 `menuconfig` 中开启 `CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE` 和 `CONFIG_BTDM_CTRL_BLE_COEXIST`,并确保使用 ESP-IDF 最新版本。实操上,可调整 Wi-Fi 的 `wifi_phy_mode` 为 `WIFI_PHY_MODE_11N` 并启用 AMPDU 聚合,减少 BLE 广播间隔(如 100ms)以降低冲突概率。若仍降速,可尝试动态切换优先级:在 BLE 连接事件期间临时降低 Wi-Fi 优先级,但需用 `esp_coex_priority_set` 谨慎控制,避免频繁切换开销。建议先用 `esp_event` 监控共存状态,并测试不同场景下的吞吐量,找到最优平衡点。
mcuku 阿沐 · 2026-08-27