蓝牙从机设置白名单,可以只扫描应答(白名单中列出的)设备,只允许(白名单中列出的)设备连接。
蓝牙主机设置白名单,可以只扫描、连接特定的蓝牙设备(白名单中列出的)。
一.蓝牙从机白名单设置有关的函数介绍:
1.extern bStatus_t LL_ClearWhiteList( void );                                                       //清空白名单
2.extern bStatus_t LL_AddWhiteListDevice( u8 addrType, u8 *devAddr );          //添加白名单
3.extern bStatus_t LL_RemoveWhiteListDevice( u8 addrType, u8 *devAddr);    //将指定设备移除白名单
第一个函数就不过多解释了,想要清空白名单,直接调用清空即可。
第二个函数需要注意的是参数addrType,有以下四种,如果使用的主机使用的是WCH主机例程,那么addrType默认是0,devAddr注意大小端,不要写反。
#define ADDRTYPE_PUBLIC                                   0x00 //!< Use the BD_ADDR
#define ADDRTYPE_STATIC                                    0x01 //!< Static address
#define ADDRTYPE_PRIVATE_NONRESOLVE       0x02 //!< Generate Non-Resolvable Private Address
#define ADDRTYPE_PRIVATE_RESOLVE               0x03 //!< Generate Resolvable Private Address
第三个函数和第二个注意点相同。
白名单代码可以在Peripheral_Init函数中添加:
uint8 mac0[6]={0x02,0x02, 0x03, 0xE4, 0xC2, 0x84};                  //指定mac地址
uint8 macType=0;                                                                          //指定地址类型
uint8 filter_policy = GAP_FILTER_POLICY_WHITE_CON;          //允许任何设备扫描,但只允许白名单中的设备连接。
LL_AddWhiteListDevice(macType,mac0);                                     //添加白名单mac
GAPRole_SetParameter( GAPROLE_ADV_FILTER_POLICY, sizeof( uint8 ), &filter_policy );//设置白名单
#define GAP_FILTER_POLICY_ALL 0x00                         //!< Allow Scan Request from Any, Allow Connect Request from Any (default).   允许扫描请求从任何设备,允许连接请求从任何设备
#define GAP_FILTER_POLICY_WHITE_SCAN 0x01       //!< Allow Scan Request from White List Only, Allow Connect from Any               只允许从白名单扫描请求,允许连接从任何设备
#define GAP_FILTER_POLICY_WHITE_CON 0x02         //!< Allow Scan Request from Any, Connect from White List Only                        允许扫描请求从任何设备,只连接从白名单
#define GAP_FILTER_POLICY_WHITE 0x03                   //!< Allow Scan Request and Connect from White List Only                                 只允许从白名单扫描请求和连接
这边的地址和地址类型是否正确可以在不加白名单时,让主从正常连接,连接后通过从机获取主机的这些信息:

二.蓝牙主机机白名单设置有关的函数介绍:
#define DEFAULT_DISCOVERY_WHITE_LIST        FALSE
#define DEFAULT_LINK_WHITE_LIST                     FALSE
修改这两个宏是否开启扫描和连接的白名单,
uint8 mac0[6]={0x02,0x02, 0x03, 0xE4, 0xC2, 0x84};                  //指定mac地址
uint8 macType=0;                                                                         //指定地址类型
LL_AddWhiteListDevice(macType,mac0);                                   //添加白名单mac
添加白名单列表与从机相同。

CH573 CH582 CH579蓝牙从机(peripheral)例程讲解六(蓝牙设置白名单)的更多相关文章

  1. CH58X/CH57X/V208的Broadcaster(广播者)例程讲解

    在对ble进行应用的时候,每个用户的需求可能不尽相同.这里着重介绍从机Broadcaster例程,只广播不连接. 使用该例程时可以在手机使用APP上对Broadcaster进行调试. 安卓端在应用市场 ...

  2. 蓝牙进阶之路 (001) - HC-05蓝牙无线模块设置

    USB转串口的有线转接方式,实在太难看了,尤其是寻接头,那是相当的不方便.其它电器厂商都想把是接头做小,做精致,唯独串口接头还是那么庞大,感觉应该换一换了,都已经完全不符合这个时代的审美观了. 于是, ...

  3. 蓝牙核心技术概述(五):蓝牙协议规范(irOBEX、BNEP、AVDTP、AVCTP)

    关键词:蓝牙核心技术协议  irDA BNEP  AVDTP AVCTP 作者:xubin341719(欢迎转载,请注明作者,请尊重版权,谢谢! )欢迎指正错误,共同学习.共同进步!! 下载链接:Bl ...

  4. [蓝牙前沿应用] 照明即平台 —— 通过蓝牙增强服务提高照明投资回报率(蓝牙MESH、定位AoA、AoD)

      1.照明即平台(LAAP) 随着照明设施向LED转型,他们也在利用类似于蓝牙MESH的技术,创建一个可连接的照明平台,作为他们建筑的中枢神经系统.这些系统除了提供先进的照明控制,还建立了一个增强版 ...

  5. 蓝牙协议分析(8)_BLE安全机制之白名单

    1. 前言 在万物联网的时代,安全问题将会受到非常严峻的挑战(相应地,也会获得最大的关注度),因为我们身边的每一个IOT设备,都是一个处于封印状态的天眼,随时都有被开启的危险.想想下面的场景吧: 凌晨 ...

  6. 蓝牙 BLE 协议学习: 3种蓝牙架构实现方案(蓝牙协议栈方案)

    导言 不同的蓝牙架构可以用在不同的场景中.从而协议帧的架构方案也会不同. 转载自:<三种蓝牙架构实现方案(蓝牙协议栈方案)> 蓝牙架构实现方案有哪几种?我们一般把整个蓝牙实现方案叫做蓝牙协 ...

  7. 【刷机】Google Nexus s 蓝牙点击异常,无法启动,刷机解决方案

    1  问题详述 手头上有一部Google Nexus S ,本机自带的输入法不好用,想下载其他的输入法,想用蓝牙传输一下apk文件,点了一下蓝牙开关想要打开蓝牙功能,但奇怪的情况出现了,手机一直重启, ...

  8. 【iCore4 双核心板_ARM】例程十六:USB_HID实验——双向数据传输

    实验方法: 1.USB_HID协议免驱动,此例程不需要驱. 2.将跳线冒跳至USB_OTG,通过Micro USB 线将iCore4 USB-OTG接口与电脑相连. 3.打开上位机软件usb_hid. ...

  9. 小米笔记本装MAC(黑苹果),外接USB蓝牙,禁止笔记本自带的蓝牙方法

    https://blog.daliansky.net/ 解决插入耳机没有声音问题,每次开机需要重新插拔一次:https://github.com/daliansky/XiaoMi-Pro/blob/m ...

  10. 蓝牙核心技术概述(四):蓝牙协议规范(HCI、L2CAP、SDP、RFOCMM)(转载)

    一.主机控制接口协议  HCI 蓝牙主机-主机控模型 蓝牙软件协议栈堆的数据传输过程: 1.蓝牙控制器接口数据分组:指令分组.事件分组.数据分组(1).指令分组 如:Accpet Connection ...

随机推荐

  1. C# Visual Studio等,学习地址

    Visual Studio 2022 学习地址 Visual Studio系列学习地址 Csharp11 学习地址 Csharp 学习地址 W3School公营,推广技术,免费学习 W3CSchool ...

  2. nuxt项目中使用store

    首先初始化创建一个nuxt项目 nuxt项目创建以后,内部已自动集成store,所以无需再单独安装和引入 在根目录的store文件夹下新建文件,例如home.js //home.js export c ...

  3. 【剑指Offer】【树】树的子结构

    题目:输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) /* struct TreeNode { int val; struct TreeNode *left ...

  4. Python3之并发(四)---线程锁

    一.线程锁 保证多线程数据的一致性,对锁内的资源进行锁定,同一时间只能有一个线程来修改共享的数据多个线程同时加了同一个锁对象时,先获取到锁的线程会继续运行,未获取到锁的线程会处于堵塞状态,直到前面的线 ...

  5. 微信字体大小调整导致的H5页面错乱问题处理

    当用户调整微信字体大小时会导致H5页面错乱,解决方案如下: ios:在css中加入-webkit-text-size-adjust: 100% !important;   body {   -webk ...

  6. holiday08

    第八天 管道 linux允许将 一个命令的输出 可以 通过管道 作为 另一个命令的输入 ls -lh | more 可以理解现实生活中的管子,管子一头塞东西进去,另一头取出来,这里 | 的左右分为两端 ...

  7. MySQL之char、varchar、text类型

    在存储字符串时, 可以使用char.varchar或者text类型, 那么具体使用场景呢? 参考下面这个表结构: 分析 一,char类型 char列的长度固定为创建表时声明的长度.长度可以为从0到25 ...

  8. Cxf框架中@WebService注解的使用

    最近工作中总是不可避免的使用WebService来对接功能,经过自己一番摸索,总结出了一些使用方法,做一下记录: 记录了两个SpringBoot版本使用WebService的一些问题和用法,Sprin ...

  9. vxe-table 合并单元格

    <vxe-table @cell-click="handleClickCell" :span-method="spanMethods" //自动合并单元格 ...

  10. bzoj 3532

    很好的一道题,对理解最小割有很大帮助 首先,不难发现本题与网络流24题中的某一道很类似,我们可以先跑一次dp求出每个节点的LIS,然后拆点,拆出的两点之间连流量为删除的代价的边,剩下的点之间按dp的转 ...