在ESP32上,WiFi和BLE共存时,丢包主要源于射频资源竞争。建议优先配置共存仲裁器(Coexistence Arbiter),通过`esp_coex_priority_set()`或menuconfig中的`CONFIG_ESP_COEX_SW_COEXIST_ENABLE`启用软件共存,并设置优先级:若WiFi为关键业务(如TCP传输),将WiFi优先级设为高(如`ESP_COEX_PREFER_WIFI`),BLE设为低;反之亦然。同时,调整WiFi的DTIM间隔和BLE的广播/连接间隔(如将BLE连接间隔设为30-50ms),减少冲突窗口。实测中,启用`CONFIG_ESP_COEX_GPIO_DEBUG`可观察冲突,但生产环境应关闭。若丢包仍严重,可尝试硬件共存方案(如外部PA/LNA切换),或使用ESP32-C3等支持双模共存优化的芯片。建议先用`esp_event`监听共存事件,动态调整参数。
mcuku 阿沐 · 2026-08-27