Bluetooth Low Energy也称低功耗蓝牙,相较经典蓝牙,低功耗蓝牙旨在保持同等通信范围的同时显著降低功耗和成本。
Service
一个低功耗蓝牙设备可以定义许多 Service, Service 可以理解为一个功能的集合。设备中每一个不同的 Service 都有一个 128 bit 的 UUID 作为这个 Service 的独立标志。蓝牙核心规范制定了两种不同的UUID,一种是基本的UUID,一种是代替基本UUID的16位UUID。所有的蓝牙技术联盟定义UUID共用了一个基本的UUID:0x0000xxxx-0000-1000-8000-00805F9B34FB
为了进一步简化基本UUID,每一个蓝牙技术联盟定义的属性有一个唯一的16位UUID,以代替上面的基本UUID的‘x’部分。例如,心率测量特性使用0X2A37作为它的16位UUID,因此它完整的128位UUID为:0x00002A37-0000-1000-8000-00805F9B34FB
Characteristic
在 Service 下面,又包括了许多的独立数据项,我们把这些独立的数据项称作 Characteristic。同样的,每一个 Characteristic 也有一个唯一的 UUID 作为标识符。建立蓝牙连接后,通过蓝牙发送数据给外围设备就是往这些 Characteristic 中的 Value 字段写入数据;外围设备发送数据给蓝牙就是监听这些 Charateristic 中的 Value 字段有没有变化。
二、板卡蓝牙功能测试
先把官方提供的例程拿来跑一跑看看效果,测试例程是这个:
复制到工程目录的效果:
开启RTT调试输出:
手机下载BLE调试宝软件,然后搜索到蓝牙设备,此时发现板子上LED快闪:
连接成功后,板子上的LED变为慢闪。从服务列表可以看到很多服务,有的服务有闹钟图标表示通知权限,点击后会触发它发送通知消息:
如下是电池电量的通知消息: