在ESP32上,Wi-Fi与BLE共存时,互扰丢包主要源于2.4GHz频段的重叠。首先,启用ESP-IDF的共存模块(CONFIG_ESP_COEX_SW_COEXIST_ENABLE),并配置优先级:Wi-Fi优先时,BLE吞吐会下降但丢包减少;反之亦然。其次,调整RF参数:使用esp_coex_set_ble_channel()将BLE固定到与Wi-Fi不重叠的信道(如Wi-Fi用1/6/11,BLE用7/8/9),并设置BLE的扫描窗口(scan_window)和间隔(scan_interval)以避开Wi-Fi活跃期。建议将Wi-Fi的DTIM间隔调大(如10),减少Beacon干扰。实操中,先用esp_wifi_set_ps(WIFI_PS_MIN_MODEM)降低Wi-Fi功耗模式,再通过esp_ble_gap_set_scan_params()微调BLE扫描参数。最后,用esp_event_handler注册共存事件,动态调整TX功率(如BLE降3dBm)。测试时,用iperf和BLE吞吐工具对比,逐步迭代参数。若仍丢包,可考虑硬件上增加外部LNA或屏蔽。
mcuku 阿沐 · 2026-08-27