蓝牙从机设置白名单,可以只扫描应答(白名单中列出的)设备,只允许(白名单中列出的)设备连接。
蓝牙主机设置白名单,可以只扫描、连接特定的蓝牙设备(白名单中列出的)。
一.蓝牙从机白名单设置有关的函数介绍:
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. win10 右键添加cmd当前目录打开

    新建.txt粘贴以下命令保存修改扩展名为.reg Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\shell\Ope ...

  2. iis express添加网站,并启动

    1.查看网站列表 C:\Program Files (x86)\Microsoft Visual Studio 12.0>"C:\Program Files\IIS Express\a ...

  3. I2C总线简介-转载

    I2C总线简介 - 立创社区 (szlcsc.com) 简介 NXP半导体(原Philips半导体)于20多年前发明了一种简单的双向二线制串行通信总线,这个总线这个总线被称为IIC.Inter-IC或 ...

  4. iis 无法在Web服务器上启动调试。打开的URL的IIS辅助进程当前没有运行

    今天开发又遇到老问题了,记录一下. 最近换了电脑 win10+vs 2010+oracle11g 客户端. IIS 发布的项目,开始是 把localhost 换成ip地址 总是报 iis 无法在Web ...

  5. PHP开发支付时开启OPENSSL扩展

    开发支付功能时,发现openssl类的方法都找不到,大概知道是没有扩展,在网上收集了PHP开启openssl扩展的方法. windows下开启方法: 1: 首先检查php.ini中:extension ...

  6. c++11 智能指针学习汇总

    c++为什么要引入智能指针? C/C++ 语言最为人所诟病的特性之一就是存在内存泄露问题,因此后来的大多数语言都提供了内置内存分配与释放功能,有的甚至干脆对语言的使用者屏蔽了内存指针这一概念.这里不置 ...

  7. count(1) and count(*),count(字段)区别及效率比较

    执行结果: count(1)和count(*)之间没有区别,因为count(*)count(1)都不会去过滤空值, count(字段) 会统计该字段在表中出现的次数,忽略字段为null 的情况.即不统 ...

  8. Debug --> 使用USTC-TK2016工具对USTC-TFC2016数据集进行处理

    文件介绍: https://blog.csdn.net/u010916338/article/details/86511009?spm=1001.2101.3001.6661.1&utm_me ...

  9. oracle-11.2.0.4静默安装----RedHat7.5

    1.配置/etc/hosts文件和关闭seliux和firewall防火墙 编辑/etc/hosts文件 [root@henry ~]# vim /etc/hosts [root@henry ~]# ...

  10. bquote

    在Linux环境下,按"·"(1左边的按钮)会进入bquote模式 退出方法 按 Ctrl + C 其它(待补充)