这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
cc2640r2f:notify_characteristic6 [2017/08/31 16:30] 127.0.0.1 外部编辑 |
cc2640r2f:notify_characteristic6 [2021/06/22 23:14] (当前版本) |
||
---|---|---|---|
行 1: | 行 1: | ||
< | < | ||
- | # CC2640增加一个具有通知属性的characteristic # | + | |
+ | # CC2640增加一个具有通知属性的 characteristic # | ||
## 介绍 ## | ## 介绍 ## | ||
- | 本章使用simple_peripheral作为实验平台。创建一个自定义属性的characteristic。simple_peripheral的IAR工程可以在目录C: | + | 本章使用 simple_peripheral 作为实验平台,创建一个自定义属性的 characteristic 。 |
- | 有关工程配置和编译选项以及下载方法参考< | + | simple_peripheral 的 IAR 工程可以在目录C: |
+ | 有关工程配置和编译选项以及下载方法参考< | ||
## 硬件环境 ## | ## 硬件环境 ## | ||
- | 使用UBS连接我们的开发板。如下图所示 | + | |
+ | 使用USB连接开发板如下图所示: | ||
![](http:// | ![](http:// | ||
- | 成功连接开发板之后,打开电脑的设备管理器。可以看见XDS110的两个端口,BLE Device Monitor将会使用XDS110 Class Application/ | + | 成功连接开发板之后,打开电脑的设备管理器,有XDS110 的两个端口,BLE Device Monitor 使用 XDS110 Class Application/ |
- | > | + | |
- | >XDS110驱动程序在安装IAR时会默认安装,如果你没有安装IAR,可以手动更新驱动程序软件,XDS驱动可以在< | + | >**注意**:XDS110 驱动程序在安装 IAR 时会默认安装,如果你没有安装 IAR ,可以手动更新驱动程序软件。XDS 驱动可以在< |
![](http:// | ![](http:// | ||
## 软件环境 ## | ## 软件环境 ## | ||
+ | |||
- IAR Embedded workbench 7.80.3 | - IAR Embedded workbench 7.80.3 | ||
- BLE-STACK V3.0.1 | - BLE-STACK V3.0.1 | ||
行 23: | 行 28: | ||
- BLE Device Monitor | - BLE Device Monitor | ||
- | 协议栈和IAR安装参考< | + | 协议栈和 IAR 安装参考< |
- | ## BLE Device Monitor环境搭建 ## | + | ## BLE Device Monitor 环境搭建 ## |
- | 有关BLE Device Monitor环境搭建以及使用方法请参考:< | + | |
+ | 有关 BLE Device Monitor 环境搭建以及使用方法请参考:< | ||
## 开发步骤 ## | ## 开发步骤 ## | ||
- | 在simple_perpheral工程中添加一个characteristic 6,主要通过修改simple_gatt_profile.c和simple_perpheral.c两个文件完成。 | + | |
- | 1. 在simple_gatt_profile.h文件里面添加以下宏定义: | + | 在 simple_perpheral 工程中添加一个 characteristic 6,主要通过修改 simple_gatt_profile.c 和 simple_perpheral.c 两个文件完成。 |
+ | |||
+ | 1. 在 simple_gatt_profile.h 文件里面添加以下宏定义: | ||
````C | ````C | ||
// | // | ||
行 37: | 行 46: | ||
#define SIMPLEPROFILE_CHAR6_LEN | #define SIMPLEPROFILE_CHAR6_LEN | ||
```` | ```` | ||
- | 2. 在simple_peripheral.c文件中设置特征值初始值,添加如下代码: | + | |
+ | 2. 在 simple_peripheral.c 文件中设置特征值初始值,添加如下代码: | ||
````C | ````C | ||
// | // | ||
行 46: | 行 57: | ||
```` | ```` | ||
- | 3. 由于我们调用了SimpleProfile_SetParameter这个函数,该函数作用是设置特征值,当特征值具有通知属性就使用通知发送出来。由于该函数没有characteristic6的处理过程,所以需要我们自己添加,在simple_gatt_profile.c文件中,增加如下代码。 | + | 3. SimpleProfile_SetParameter 这个函数作用是设置特征值,当特征值具有通知属性就使用通知发送出来。由于该函数没有 |
````C | ````C | ||
// | // | ||
行 60: | 行 72: | ||
}break; | }break; | ||
```` | ```` | ||
- | 4. 同理在SimpleProfile_GetParameter函数中也没有characteristic6的处理过程,在SimpleProfile_GetParameter中增加如下代码。 | + | |
+ | 4. 同理在 SimpleProfile_GetParameter 函数中也没有 | ||
````C | ````C | ||
// | // | ||
行 68: | 行 82: | ||
```` | ```` | ||
- | 5. 在simple_gatt_profile.c定义characteristic6属性变量,并在simpleProfileAttrTbl属性数组表中添加。 | + | 5. 在 simple_gatt_profile.c 定义 |
````C | ````C | ||
// | // | ||
行 103: | 行 118: | ||
simpleProfileChar6UserDesp }, | simpleProfileChar6UserDesp }, | ||
```` | ```` | ||
- | > | ||
- | 6. 接下来在simple_gatt_profile.c的SimpleProfile_AddService函数中对characteristic6的simpleProfileChar4Config参数分配内存。并初始化配置属性表。 | + | > |
+ | |||
+ | 6. 接下来在 simple_gatt_profile.c 的 SimpleProfile_AddService 函数中对 | ||
````C | ````C | ||
// | // | ||
行 115: | 行 132: | ||
```` | ```` | ||
- | 7. 回调改写,走读一下SimpleProfile_SetParameter()这个函数,可以发现,TI的处理过程是每次设置参数后会调用回调读取当前值,然后使用通知发送出来,所以如果要成功的使用通知发送数据,还必须在simpleProfile_ReadAttrCB回调函数中增加characteristic6的代码。在simple_gatt_profile.c文件中simpleProfile_ReadAttrCB函数里添加如下代码: | + | 7. 回调改写,走读一下 SimpleProfile_SetParameter() 这个函数可以发现:TI 的处理过程是每次设置参数后会调用回调读取当前值,然后使用通知发送出来。如果要成功的使用通知发送数据,还必须在 simpleProfile_ReadAttrCB 回调函数中增加 |
+ | 在 simple_gatt_profile.c 文件中 simpleProfile_ReadAttrCB 函数里添加如下代码: | ||
````C | ````C | ||
// | // | ||
行 124: | 行 143: | ||
```` | ```` | ||
- | 经过上面7步就完成了在增加通知属性的characteristic特征值,我们可以通过按键方式或者将就程序现成的定时器来每秒进行一次通知。这里我们演示使用定时器每秒通知一次characteristic6的值。在simple_peripheral.c文件里SimpleBLEPeripheral_performPeriodicTask函数中增加下面代码。 | + | 经过上面 7 步就完成了增加通知属性的 characteristic 特征值,我们可以通过按键方式或定时器每秒进行一次通知。本文演示的是使用定时器每秒通知一次characteristic 6 的值,在 simple_peripheral.c 文件里 SimpleBLEPeripheral_performPeriodicTask 函数中增加下面代码: |
````C | ````C | ||
// | // | ||
行 131: | 行 151: | ||
```` | ```` | ||
- | 如下图所示,使用BLE Device Monitor就能接收到开发板发送出来的数据,这里显示的abcde和我们设置的一样。 | + | 如下图所示,使用 BLE Device Monitor 就能接收到开发板发送出来的数据,这里显示的 abcde 和我们设置的一样。 |
![](http:// | ![](http:// | ||