请问蓝牙扫描的白名单怎么填?

应用场景,用观察者角色,扫描特别的遥控器(广播模式,非连接)。


image.png

添加了白名单(MAC为  11:22:33:44:55:66)

但是没有扫描到,有搞错的地方吗?


image.png



首先,需要知道MAC地址的类型,这边如果使用的是evt里广播的例程,类型参数传0即可,第二个参数传数组首地址

emobile_2021-12-27_14-11-50.png

添加白名单时需要注意,添加的mac地址与ble调试助手上显示的大小端相反。

emobile_2021-12-27_14-10-10.png   


为什么参数我写0不行,写1才可以。

而且扫描得很慢,按了好多次长按按键,才有一次扫描到。

image.png


参数写零不行,写1才可以,那你可以打印的时候打印一下addrtype,看看究竟是什么类型,扫描很慢是因为例程里面的扫描时长设置的是3s,你可以将参数DEFAULT_SCAN_DURATION下调,单位为0.625ms。


 根据你前面的建议,函数改成 GAP_SetParamValue( TGAP_FILTER_ADV_REPORTS, FALSE );这个了,整个程序与DEFAULT_SCAN_DURATION 定义无关。


改回不过虑白名单的,DEFAULT_SCAN_DURATION 这个数据改为1. 测试到像是间隔10S收一次信号。

image.png


emobile_2021-12-28_16-01-36.png

你屏蔽了这条设置扫描时长的语句,这句话不要屏蔽,你下面加的那句话是设置广播的,扫描传参应该是2,

你这边10s扫描一次也是正常的,你没有设置时间,默认时间是10.24s。


快速扫描可以实现了。

现在发现另一个问题,就是遥控器广播的信息,用573打印出来的和Nrf Connect测出来的不一致,相差还挺大。

573到收51长度的广播。

image.png

打印数据:

image.png


NRF CONNECT 截取的数据:

image.png


请问,前两图数据相差那么大,长度也不一样,程序写法对了吗?


首先,广播包的大小是有规定的,最大为31个字节,其次根据实际长度去操作,

emobile_2021-12-29_19-21-42.png



测试到收到广播的数据不对,方便确认一下吗?

image.png


emobile_2021-12-30_14-22-51.png

打印出的结果与手机app搜到的广播结果一致。

emobile_2021-12-30_14-23-52.png

确认一下,你的打印是否在这个事件中去打印的。


原来是事件没搞对,现在可以了,谢谢


只有登录才能回复,可以选择微信账号登录