深入解析蓝牙ATT协议:属性表设计与UUID分类实战

低功耗蓝牙项目,需要一块懂省电的板

思澈 SF32LB52 芯片,BLE 协议栈深度优化,上手即开发

1. 蓝牙ATT协议基础:属性表的核心作用

蓝牙低功耗(BLE)通信的核心是属性协议(ATT),它定义了设备之间如何发现、读取和写入数据。如果把BLE通信比作快递系统,那么属性表就是快递公司的仓库管理系统——它决定了哪些货物(数据)可以被存取、如何分类存放,以及谁有权操作这些货物。

属性表通常由Server端(如智能手环、传感器等外设)维护,包含四个关键部分:

  • Attribute Handle:相当于仓库货架编号,是16位唯一标识符(0x0001-0xFFFF)
  • Attribute Type:用UUID标识的数据类型,好比货物分类标签
  • Attribute Value:实际存储的数据内容,最大512字节
  • Attribute Permissions:权限控制,决定客户端能否读写或通知

实际开发中,TI CC26xx等芯片厂商的SDK已经封装了底层通信细节。以创建心率服务为例,我们需要:

  1. 定义服务UUID(如0x180D)
  2. 添加特征值(如心率测量值0x2A37)
  3. 设置权限(读/写/通知)
// TI CC26xx SDK示例
static gattAttribute_t heartRateSvc[] = {
  // 服务声明
  { { ATT_BT_UUID_SIZE, primaryServiceUUID }, GATT_PERMIT_READ, 0, (uint8_t *)&heartRateService },
  // 心率特征声明
  { { ATT_BT_UUID_SIZE, characterUUID }, GATT_PERMIT_READ, 0, &heartRateCharProps },
  // 心率特征值
  { { ATT_BT_UUID_SIZE, heartRateMeasUUI

低功耗蓝牙项目,需要一块懂省电的板

思澈 SF32LB52 芯片,BLE 协议栈深度优化,上手即开发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值