蓝牙主机(Central),顾名思义,就是一个蓝牙主设备,与从机(Peripheral)建立连接进行通信,可以接收从机通知,也可以给从机发送信息,通常Central和Peripheral结合使用。
一、官方例程Central的工作流程
从官方例程中,我们可以看到,Central的工作流程大致如下:
一、初始化完成开启扫描,
二、获取扫描信息
三、将扫描到的mac地址与目标连接mac地址作比较,扫描到目标mac就发起连接否则继续开启扫描
四、枚举服务进行通信测试

上图标注1:开始扫描
标注2将扫描获取的从机MAC地址加入扫描列表
标注3与目标连接MAC地址比较
标注4没有找到目标,重新开始扫描
标注5找到目标mac,发起连接
从上述描述中我们知道,要想与Peripheral建立连接,必须知道Peripheral的MAC地址,但实际应用中,我们很难知道Peripheral的MAC的地址,就算知道了,也很难输入Central中,毕竟大多数情况下,每个Peripheral的MAC地址是不同的,尤其是我们针对的是现有的产品时。
那么我们如何应对这种问题呢?
二、BLE广播数据中的AD Type详解
一般来说,同一种产品,广播数据是相同的,甚至同一个厂家的同一种类型的产品,广播数据也会有一些共同的特征,我们可以通过研究产品的广播数据来解决上面提到的问题。所以我们先来了解一下广播数据中的AD Type。
AD Type是广播数据单元(AD Structure)的核心字段,用于定义后续数据(AD Data)的类型和格式。以下是常见AD Type的分类及说明:
一)、基础设备信息类
-
Flags(类型=0x01)
- 功能:标识设备的发现模式和兼容性,如是否支持BLE/BR/EDR双模。
- 数据格式:1字节,各bit位含义:
- Bit 0:LE有限发现模式(仅临时可连接)
- Bit 1:LE普通发现模式(持续可连接)
- Bit 2:不支持BR/EDR(纯BLE设备)
- Bit 3-4:控制器/主机支持双模
- 示例:
0x06表示支持普通发现模式且不支持BR/EDR。
-
完整设备名称(类型=0x09)
- 功能:声明设备完整名称(如
Nordic_HRM)。 - 数据格式:UTF-8字符串
- 功能:声明设备完整名称(如

最低0.47元/天 解锁文章
1556

被折叠的 条评论
为什么被折叠?



