蓝牙从机设置白名单,可以只扫描应答(白名单中列出的)设备,只允许(白名单中列出的)设备连接。
蓝牙主机设置白名单,可以只扫描、连接特定的蓝牙设备(白名单中列出的)。
一.蓝牙从机白名单设置有关的函数介绍:
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. SVN创建自己的版本库

    1.创建版本库 第一:新建文件夹 第二:将新建文件与SVN建立关联(创建版本库) 直接选择OK 点击确定后文件夹图标也换了 该下的信息就是用来协助我们存储数据的(不是数据) 2.获取SVN库中的数据并 ...

  2. C/C++:printf 函数格式化输出,用法详细记录

    printf ( print format )函数是接触C/C++之后接触的第一个函数,它的功能除了输出hello world外,更重要的是进行格式化输出,比如输出整数的%d,输出小数的%f,%lf ...

  3. 转L:[JAVA基础] 成员变量和局部变量(一看就懂的总结归纳篇)

    [JAVA基础] 成员变量和局部变量(一看就懂的总结归纳篇) JVM--Java虚拟机详解

  4. vue3+ts+vant制作音乐播放器(进度条拖拽、倍速切换、上一曲、下一曲)完整版

    1.进度条的用的是vant的Progress组件,比手写进度条方便很多,有自带的事件 2.H5页面兼容pc 效果展示 上代码 一.template模块 <template lang=" ...

  5. usbip:(二)从linux内核了解usb

    一.前言 1.首先了解一下EHCI.UHCI和OHCI. 从硬件上来说,usb 设备要想工作,除了外设本身,必须依赖于 usb host controller.一般来说,一个电脑里有一个 usb ho ...

  6. git 产生冲突的处理方式

    理解你操作图形化的时候, git 在什么? 了解你在做的文件的git状态? 1. 添加文件 git add . -A git commit -m "your commit here" ...

  7. async await和promise的区别,和使用方法

    async和promise都是异步方法,区别是async生成的结果是promise对象,async是promise的终结版. await只能在async中使用,await是阻塞的意思,就是暂停,你一起 ...

  8. FreeSql 将 Saas 租户方案精简到极致[.NET ORM]

    什么是多租户 维基百科:"软件多租户是指一种软件架构,在这种软件架构中,软件的一个实例运行在服务器上并且为多个租户服务".一个租户是一组共享该软件实例特定权限的用户.有了多租户架构 ...

  9. Python 删除文件及文件夹

    2种方式: [不删除给定的目录] path1 = "D:\\dev\\workspace\\python\\pytestDemo\\222" def del_filedir(pat ...

  10. 1903021126 申文骏 Java 第四周作业 Java分支语句学习

    项目 内容 课程班级博客链接 19级信计班(本) 作业要求链接 Java第四周作业 博客名称 1903021126  申文骏  Java 第四周作业 Java分支语句学习 要求 每道题要有题目,代码( ...