我把从机设置成只有白名单可以扫描和连接,然后没有添加任何设备进白名单中,但是我手机还是可以正常搜到设备和连接。 我这样子设置对么?
如果你的目的是添加白名单,让某些主机可以扫描连接,那么除了以上设置,还需添加白名单设备mac地址,调用LL_AddWhiteListDevice
传入两个参数,第一个地址类型,第二个MAC地址数组首地址。
像你上面的操作,白名单里没有设备,你的手机也是应该不能扫描到的,那么如果能扫描到,就下载程序的时候清空dataflash,手机上如果配对过,就取消配后看看是否仍可以扫描连接,或者找个别的手机扫描看看。
手机的mac地址是会变得,如果想要将手机加入白名单,可以这么做
调用如图函数,绑定之后,会将不变的身份地址加入白名单。
关于白名单的使用,还可看以下链接:https://www.cnblogs.com/debugdabiaoge/p/15817418.html
换了手机之后确实搜索不到了,我现在想做成我上电的时候从机使用白名单模式,我按了一个按键之后不使用白名单模式,可是我这么设置之后,手机还是搜索不到设备,是不能这么设置吗。我断点打到这里是可以运行到这里的。
CH579 CH573 CH582 蓝牙从机设置白名单 - debugdabiaoge - 博客园 (cnblogs.com)
你可以禁用白名单,然后重新开关一下广播试试
弱弱的问一下 开关广播的API是哪个
uint8_t initial_advertising_enable = TRUE;
GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t), &initial_advertising_enable);
uint8_t initial_advertising_enable = FALSE;
GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t), &initial_advertising_enable);
还有咨询一下,我现在有个方案是一个主机连接三个从机,现在我是主机和从机上电的时候都是白名单模式,主机和从机分别按下一个按键之后禁用白名单模式并开始搜索和广播,如果搜索到设备之后就将对方的mac地址分别保存到flash里面,下次上电的时候从flash里面提取mac地址添加到白名单中,然后在开启白名单模式,这样子可以确保主机只能连接固定的那三个设备。
想问下使用下面这个API也可以实现同样的结果吗。
即使你不使用白名单,知道对方的地址和地址类型,可以直接通过地址发起连接,也能实现。
现在主从连接就是通过mac地址发起连接的。
不知道对方的地址和类型。产品是一个机器上含有一个主机+三个从机,主机和从机确保只能放在同一个机器上的可以相互连接。如果通过写固定MAC地址,我怕到时候会造成主机连接其他机器上的三个从机去了,或者这个机器上的从机连接到别机器上的主机去了。因为一个空间内可能存在多个机器。
如果想在代码上简单,建议是给固定的地址,一个主机连接三个从机每台机器都这样,保证每个从机的mac地址都不同,这样的话就存在一个问题,你的从机需要编号识别,不然就会出现你说的,连接到别的机器的从机上去了。
如果想要实现你说的,就需要自己代码上加处理,比说说两个板子靠的很近的时候,根据rssi值去将扫描到的很近的设备的mac地址记录下来保存下来。
OKOK 我先试试看哈
我现在按键按下后增加开关广播功能,现在只要手不松就能搜索到,手松开就有的时候搜索不到(大概率),多试几次按键后就可以松开后也可以一直搜索到,不知道是什么原因。