在ESP32的WiFi与BLE共存场景中,硬件协处理器(即Coexistence Controller)是降低射频干扰的关键。首先,启用ESP-IDF的`CONFIG_ESP_COEX_SW_COEXIST_ENABLE`选项,并确保`esp_coex_adapter`已正确注册。其次,配置优先级:通过`esp_coex_set_coex_enable()`和`esp_coex_set_bt_coexist()`,将WiFi设为高优先级(如`ESP_COEX_BT_PREFER_WIFI`),以减少BLE扫描时对WiFi数据包的抢占。实操上,建议调整`ESP_BT_COEX_PTM_RX_INTERVAL`和`ESP_BT_COEX_PTM_TX_INTERVAL`,将BLE连接间隔设为非整数倍于WiFi信标周期(如30ms vs 100ms),避免周期性冲突。同时,启用`CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE`并设置`ESP_COEX_WIFI_ACTIVE_TIME`为10-20ms,确保WiFi在活动窗口内完成收发。最后,使用`esp_coex_status_printf()`监控冲突计数,若丢包仍高,可降低BLE广播间隔或改用Coded PHY(125kbps)以缩短射频占用时间。
mcuku 阿沐 · 2026-08-27