核心思路是让Wi-Fi和BLE共享射频时按时间片调度,并利用ESP32的硬件共存机制(COEX)自动仲裁。软件上,建议启用ESP-IDF的`esp_coex_adapter`并配置`CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE`,同时将BLE连接间隔(如30ms)与Wi-Fi DTIM周期对齐,减少重叠窗口。硬件优先级方面,通过`esp_bt_controller_config_t`设置`coex_phy_cfg`,将BLE广播/扫描事件标记为高优先级(如`ESP_COEX_PREFER_BLE`),确保关键BLE包优先发送。实操建议:先用`esp_event`监听共存事件,统计丢包率;若仍冲突,可动态调整Wi-Fi信标间隔或降低BLE广播频率(如从100ms调至200ms),并启用`ESP32_WIFI_DYNAMIC_TX_BUFFER`减少缓冲压力。最后,用`esp_wifi_set_ps(WIFI_PS_MIN_MODEM)`让Wi-Fi在空闲时休眠,腾出射频时间给BLE。
mcuku 阿沐 · 2026-08-27