在ESP32上,WiFi与BLE共存时,吞吐量骤降通常源于2.4GHz频段的射频冲突。ESP-IDF提供了Coexistence API,核心是配置优先级策略。首先,确保在menuconfig中启用CONFIG_ESP_COEX_SW_COEXIST_ENABLE(软件共存)或硬件共存(取决于硬件设计)。然后,使用esp_coex_priority_set()函数设置优先级,推荐将WiFi的优先级设为ESP_COEX_PREFER_WIFI,BLE设为ESP_COEX_PREFER_BLE,或使用ESP_COEX_PREFER_BALANCE平衡模式。实际调优时,建议先用默认配置测试,若WiFi吞吐量下降明显,可尝试将WiFi优先级调高,并调整BT的BLE扫描间隔(如增大scan_interval)和连接参数(如增大connection interval)以减少冲突。此外,可启用ESP_COEX_WIFI_ACTIVE_TIME和ESP_COEX_BLE_ACTIVE_TIME来动态分配时隙。最后,使用esp_coex_status_show()监控共存状态,根据实际数据调整参数。注意,ESP32-S3和C3的共存机制略有差异,需参考对应芯片的API文档。
mcuku 阿沐 · 2026-08-27