ESP32 的 Wi-Fi 与 BLE 共存通过硬件仲裁器(Coexistence Arbiter)管理,优先级配置是避免丢包的关键。首先,在 menuconfig 中启用 CONFIG_ESP_COEX_SW_COEXIST_ENABLE,并设置 CONFIG_ESP_COEX_POWER_MANAGEMENT 为适当模式。其次,使用 esp_coex_priority_set() API 动态调整优先级:对于实时性要求高的 BLE 连接(如 HID),建议将 BLE 优先级设为高(如 ESP_COEX_PRIORITY_HIGH),Wi-Fi 设为中;若 Wi-Fi 吞吐量优先,则反之。实操上,需结合 esp_event 监听共存事件,在 Wi-Fi 扫描或 BLE 广播时临时调整。另外,确保 BLE 连接间隔(connection interval)与 Wi-Fi 信标间隔错开,可减少冲突。最后,测试时用 iperf 和 BLE 吞吐量工具验证,逐步调整优先级参数,找到平衡点。
mcuku 阿沐 · 2026-08-27