精确控制ESP32的BLE广播间隔需通过esp_ble_gap_config_adv_params设置adv_int_min和adv_int_max(单位0.625ms),若需固定间隔则两者设为相同值。但要注意,ESP32的Wi-Fi与BLE共用2.4GHz射频,硬件上无法同时收发,实际广播间隔会受Wi-Fi活动影响。建议:1)使用esp_coex_adapter_enable或配置CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE,让协议栈自动协调时隙;2)若对实时性要求高,可禁用Wi-Fi或使用ESP32-C3/S3等支持动态共存的新芯片;3)实测时用逻辑分析仪抓取广播包,观察实际间隔偏差,再微调adv_int值补偿。注意广播间隔过短(<20ms)会加剧冲突,建议至少100ms以上。
mcuku 阿沐 · 2026-08-27