在ESP32上实现Wi-Fi与BLE共存时,核心策略是启用共存机制并合理配置优先级。首先,确保在menuconfig中开启CONFIG_ESP_COEX_SW_COEXIST_ENABLE(软件共存),并设置CONFIG_ESP_COEX_POWER_MANAGEMENT为true以启用动态功率控制。其次,通过esp_coex_set_priority()将BLE的优先级设为高(如ESP_COEX_PREFER_BLE),但需注意这会牺牲Wi-Fi吞吐;若需平衡,建议使用ESP_COEX_PREFER_WIFI,并利用BLE的广播间隔(如30ms以上)和连接事件窗口(如1.25ms)错开射频活动。实操上,可调用esp_wifi_set_ps(WIFI_PS_MIN_MODEM)降低Wi-Fi功耗模式,同时用esp_ble_gap_set_scan_params()缩短扫描窗口。最后,若吞吐量仍不理想,尝试将Wi-Fi带宽限制为20MHz(esp_wifi_set_bandwidth),并启用HT40的共存保护。建议用iperf实测,调整BLE连接间隔(7.5ms-4s)和Wi-Fi DTIM周期,找到最优平衡点。
mcuku 阿沐 · 2026-08-27