在ESP32上,Wi-Fi与BLE共存时,BLE扫描丢包通常源于Wi-Fi传输占用射频时间。软件上,可通过esp_coex_adapter配置或调用esp_coex_status_t接口调整优先级。具体:1) 使用esp_coex_priority_set()将BLE事件优先级设为高于Wi-Fi(如ESP_COEX_PRIORITY_BLE_HIGH),确保扫描窗口不被Wi-Fi抢占;2) 调整BLE扫描参数,如增大scan_window和scan_interval的比值(例如window=100ms, interval=120ms),提高扫描占空比;3) 启用Wi-Fi的modem sleep模式(esp_wifi_set_ps(WIFI_PS_MIN_MODEM)),减少Wi-Fi活跃时间;4) 若使用ESP-IDF,可调用esp_coex_enable()并检查共存状态日志。实测中,优先提升BLE优先级并配合扫描窗口优化,丢包率可降低30%-50%。建议先用esp_coex_debug()监控冲突,再微调参数。
mcuku 阿沐 · 2026-08-27