服务的UUID
- 广播数据无法容纳全部服务的UUID
- 设备并不想在广播阶段对外展示其所支持的全部服务
定义
- UUID(通用唯一识别码:Universally Unique Identifier)是一个128 bit 的数字,用来标志属性的类型。
- 16位UUID:为提高传输效率,蓝牙技术联盟(SIG)定义了“UUID”基数,结合一个较短的16位数使用,接收方收到后补上蓝牙UUID基数即可。
范围
标准UUID
- 采用UUID基数+16位UUID的形式
- 如标准心率服务的UUID是 0x180D ,使用的基数是:00000000-00000-1000-8000-00805F9B34FB
厂商自定义UUID
- 采用厂商自定义UUID基数+16位UUID的形式
- 可以在许多工具网站或者蓝牙联盟官网在线生成UUID
加入服务UUID的步骤
UUID数据结构
UUID类型
初始化广播数据中的UUID列表
在ble_advdata_t 结构体中定义了两个ble_advdata_uuid_list_t 结构体变量:
- uuids_more_available:广播中包含部分uuid列表时使用
- uuids_complete:广播中包含全部完整uuid列表时使用
具体步骤
例如加入心率服务UUID或者串口透传服务UUID:
代码实例
学习交流,个人邮箱:imxyp9x@163.com