ble 读写特征值特征值_BLE4.0教程四 新增特征值(CC2541)

注:(本文基于我自己定义的一个服务TEMProfile,但适用其他服务)

1.特征值是什么

一个蓝牙协议栈中,包含了多个服务,一个服务里又包含了多个特征值,每个特征值都有其相关的一些信息。

我们与蓝牙进行通信的时候,就是通过读写这些特征值,来获得数据。

2.特征值的属性

一个特征值里面基本需要的变量是——

1.UUID码

2.权限属性 :基本就是 可读、可写、可通知这些了。(通知是表示允许数据主动发送)

3.内容

4.描述:这个特征值的名称

3.属性表

一个服务里,所有的特征值中的每个变量都有相应的属性,所有的属性都放在一个数组中,这个数组称之为属性表。

一个变量的属性表包含四个内容,

1.type   2.permission   3.handle   4.pValue

属性表其实就是定义了一个 gattAttribute_t类型的数组。

需要注意的是,属性表中,除了特征值的属性,第一个还要添加服务的属性

1 //TEMProfile Service

2 {3 {ATT_BT_UUID_SIZE,primaryServiceUUID}, //type

4 GATT_PERMIT_READ, //permissions

5 0, //handle

6 (uint8*)&TEMProfileService //pValue

7 },

4.增添一个新的特征值

(1)Define出配置属性的数值,用以填写配置属性。

1 //Profile Parameters

2 #define TEMPROFILE_CHAR1 0

3 #define TEMPROFILE_CHAR2 1

4

5 //Simple Profile Service UUID

6 #define TEMPROFILE_SERV_UUID 0xFF00

7

8 //Key Pressed UUID

9 #define TEMPROFILE_CHAR1_UUID 0xFF01

10 #define TEMPROFILE_CHAR2_UUID 0xFF02

11

12 //Simple Keys Profile Services bit fields

13 #define TEMPROFILE_SERVICE 0x00000001

14

15 //Length of Characteristic 2 in bytes

16 #define TEMPROFILE_CHAR2_LEN 12

其中UUID号有特定的范围,应避免与其他服务UUID冲突。

这里增添了两个特征值,特征值2是数组型的,所以需要定义一个长度TEMPROFILE_CHAR2_LEN。

(2)定义每个特征值的属性变量(以特征值2为例)

1 static uint8 TEMProfileChar2Prop =GATT_PROP

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值