150***995
广播设备和扫描设备均使用SDK_V2.1.0
现广播设备仅打开37信道(s_gap_adv_param.chnl_map = BLE_GAP_ADV_CHANNEL_37);
广播间隔为100ms
扫描设备参数为
s_scan_param.interval = (3000 * 1000 / 625)
s_scan_param.window = (3000 * 1000 / 625)
s_scan_param.timeout = 0;
按之前的理解是开启扫描后,第一个SCAN_INTERVAL仅扫描37信道,第二个SCAN_INTERVAL扫描38信道,第三个SCAN_INTERVAL扫描39信号
即每9秒(3个SCAN_INTERVAL)都会出现6秒(2个SCAN_INTERVAL)时间在扫描38、39信道,从而无法扫到仅打开37信道的广播设备
但实际测试未出现1秒以上(在BLE_GAPM_EVT_ADV_REPORT中打印systick)无法扫描到广播设备的情况
想咨询一下SDK2.1.0的蓝牙扫描信道时序具体是怎样的
zhongchengzhi
您好,已收到您的反馈,问题正在分析中。
zhongchengzhi
您好,扫描的时候,同时扫描经典广播和扩展广播:
1、当一个Interval(Window)只扫描到经典广播时,Scan 的Channel不会变;
2、当扫到扩展广播时,会切换Scan 的Channel;
应该是你的环境中有扩展广播,所以即使在一个Interval(Window)也切换了Channel,就会出现你看到的现象;
139***965
一般扩展广播的Secondary Channel不会在37,38,39这三个主信道上,不应该收到扩展广播就去其他主信道扫描吧
现在每个scan_window是否都会扫描37,38,39三个信道?而不是标准的只扫描一个信道?
zhongchengzhi
您好:
1、扩展广播由Primary和Secondary两个部分组成,其中Primary部分是工作在37/38/39 Channel,Secondary部分是工作在0-36 Channel;
2、会先收Primary部分,根据Primary部分中的内容指示,再去收Secondary部分;
3、收扩展广播的时候,当在37/38/39(每个Scan Window期间只会有其中之一)收到了Primary部分后再转去收Secondary,就会产生eof事件,此时会重新调度Scan event,也就会切换Scan Window对应的频点;
打开微信,使用“扫一扫”即可关注