用户工具

站点工具


cc2640r2f:notify_characteristic6

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
cc2640r2f:notify_characteristic6 [2017/08/31 16:30]
127.0.0.1 外部编辑
cc2640r2f:notify_characteristic6 [2021/06/22 23:14] (当前版本)
行 1: 行 1:
 <markdown> <markdown>
-# CC2640增加一个具有通知属性的characteristic #+ 
 +# CC2640增加一个具有通知属性的 characteristic # 
 ## 介绍 ## ## 介绍 ##
  
-本章使用simple_peripheral作为实验平台创建一个自定义属性的characteristic。simple_peripheral的IAR工程可以在目录C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar下找到。 +本章使用 simple_peripheral 作为实验平台创建一个自定义属性的 characteristic 。 
-有关工程配置和编译选项以及下载方法参考<a href="..\..\..\get_started\development_environment_set_up\development_environment_set_up.html">CC2640R2 BLE 开发环境搭建</a>部分和<a href="..\..\..\cc2640r2f_architecture\iar\development_with_iar.html">使用IAR进行开发</a>+simple_peripheral 的 IAR 工程可以在目录C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar 下找到。 
 +有关工程配置和编译选项以及下载方法参考<a href="http://docs.leconiot.com/doku.php?id=cc2640r2f:get_started:development_environment_set_up:development_environment_set_up"> CC2640R2 BLE 开发环境搭建</a>部分和<a href="http://docs.leconiot.com/doku.php?id=cc2640r2f:cc2640r2f_architecture:iar:development_with_iar">使用 IAR 进行开发</a>
  
 ## 硬件环境 ## ## 硬件环境 ##
-使用UBS连接我们的开发板如下图所示+ 
 +使用USB连接开发板如下图所示
  
 ![](http://www.leconiot.com/md_res/cc2640r2f/ble_stack_app/app_examples/notify_characteristic/image/picture.jpg) ![](http://www.leconiot.com/md_res/cc2640r2f/ble_stack_app/app_examples/notify_characteristic/image/picture.jpg)
  
-成功连接开发板之后,打开电脑的设备管理器。可以看见XDS110的两个端口,BLE Device Monitor将会使用XDS110 Class Application/User UART(COM25) +成功连接开发板之后,打开电脑的设备管理器,有XDS110 的两个端口,BLE Device Monitor 使用 XDS110 Class Application/User UART ( COM25 )这个端口。 
->注意: + 
->XDS110驱动程序在安装IAR时会默认安装,如果你没有安装IAR,可以手动更新驱动程序软件XDS驱动可以在<a href="..\..\..\get_started\development_tools_kit\develpoment_tool_kits.html">CC2640R2开发工具集介绍</a>里获得。+>**注意**:XDS110 驱动程序在安装 IAR 时会默认安装,如果你没有安装 IAR ,可以手动更新驱动程序软件XDS 驱动可以在<a href="http://docs.leconiot.com/doku.php?id=cc2640r2f:get_started:development_tools_kit:develpoment_tool_kits"> CC2640R2 开发工具集介绍</a>里获得。
  
 ![](http://www.leconiot.com/md_res/cc2640r2f/ble_stack_app/app_examples/notify_characteristic/image/XDS110.png) ![](http://www.leconiot.com/md_res/cc2640r2f/ble_stack_app/app_examples/notify_characteristic/image/XDS110.png)
  
 ## 软件环境 ## ## 软件环境 ##
 +
 - 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安装参考<a href="..\..\..\get_started\development_environment_set_up\development_environment_set_up.html">CC2640R2 BLE 开发环境搭建</a>本例程需要使用BLE Device Monitor,有关BLE Device Monitor使用介绍请参考:<a href="..\..\..\tool_kits\ble_device_monitor\ble_device_monitor.html">BLE Device Monitor</a> 所有工具可以在<a href="..\..\..\get_started\development_tools_kit\develpoment_tool_kits.html">CC2640R2开发工具集介绍</a>里获得。+协议栈和 IAR 安装参考<a href="http://docs.leconiot.com/doku.php?id=cc2640r2f:get_started:development_environment_set_up:development_environment_set_up"> CC2640R2 BLE 开发环境搭建</a>本例程需要使用 BLE Device Monitor,有关 BLE Device Monitor 使用介绍请参考:<a href="http://docs.leconiot.com/doku.php?id=cc2640r2f:tool_kits:ble_device_monitor:ble_device_monitor">BLE Device Monitor</a> 所有工具可以在<a href="http://docs.leconiot.com/doku.php?id=cc2640r2f:get_started:development_tools_kit:develpoment_tool_kits"> CC2640R2 开发工具集介绍</a>里获得。
  
-## BLE Device Monitor环境搭建 ## +## BLE Device Monitor 环境搭建 ## 
-有关BLE Device Monitor环境搭建以及使用方法请参考:<a href="..\..\..\tool_kits\ble_device_monitor\ble_device_monitor.html">BLE Device Monitor</a>+ 
 +有关 BLE Device Monitor 环境搭建以及使用方法请参考:<a href="http://docs.leconiot.com/doku.php?id=cc2640r2f:tool_kits:ble_device_monitor:ble_device_monitor"> BLE Device Monitor </a>
  
 ## 开发步骤 ## ## 开发步骤 ##
-在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
 //source\ti\ble5stack\profiles\simple_profile\simple_gatt_profile.h SIMPLEPROFILE_CHAR6 line 87  //source\ti\ble5stack\profiles\simple_profile\simple_gatt_profile.h SIMPLEPROFILE_CHAR6 line 87 
行 37: 行 46:
 #define SIMPLEPROFILE_CHAR6_LEN                     //特征值长度 #define SIMPLEPROFILE_CHAR6_LEN                     //特征值长度
 ```` ````
-2. 在simple_peripheral.c文件中设置特征值初始值,添加如下代码:+ 
 +2. 在 simple_peripheral.c 文件中设置特征值初始值,添加如下代码: 
 ````C ````C
 //examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\src\app\simple_peripheral.c charValue6 line 618 //examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\src\app\simple_peripheral.c charValue6 line 618
行 46: 行 57:
 ```` ````
  
-3. 由于我们调用了SimpleProfile_SetParameter这个函数,该函数作用是设置特征值,当特征值具有通知属性就使用通知发送出来。由于该函数没有characteristic6的处理过程,所以需要我们自己添加,在simple_gatt_profile.c文件中,增加如下代码+3. SimpleProfile_SetParameter 这个函数作用是设置特征值,当特征值具有通知属性就使用通知发送出来。由于该函数没有 characteristic 6 的处理过程,所以需要我们自己添加,在 simple_gatt_profile.c 文件中,增加如下代码: 
 ````C ````C
 //examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\src\app\simple_peripheral.c SimpleProfile_SetParameter line 547 //examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\src\app\simple_peripheral.c SimpleProfile_SetParameter line 547
行 60: 行 72:
 }break;    }break;   
 ```` ````
-4. 同理在SimpleProfile_GetParameter函数中也没有characteristic6的处理过程,在SimpleProfile_GetParameter中增加如下代码+ 
 +4. 同理在 SimpleProfile_GetParameter 函数中也没有 characteristic 6 的处理过程,在 SimpleProfile_GetParameter 中增加如下代码: 
 ````C ````C
 //examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\src\app\simple_peripheral.c SimpleProfile_GetParameter line 604 //examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\src\app\simple_peripheral.c SimpleProfile_GetParameter line 604
行 68: 行 82:
 ```` ````
  
-5. 在simple_gatt_profile.c定义characteristic6属性变量,并在simpleProfileAttrTbl属性数组表中添加+5. 在 simple_gatt_profile.c 定义 characteristic 6 属性变量,并在 simpleProfileAttrTbl 属性数组表中添加如下代码: 
 ````C ````C
 //examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\src\app\simple_peripheral.c  simpleProfileChar6Props line 197 //examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\src\app\simple_peripheral.c  simpleProfileChar6Props line 197
行 103: 行 118:
 simpleProfileChar6UserDesp }, simpleProfileChar6UserDesp },
 ```` ````
->注意修改simpleProfileAttrTbl[SERVAPP_NUM_ATTR_SUPPORTED]数组大小。SERVAPP_NUM_ATTR_SUPPORTED定义的是17,由于我们添加了4个属性,所以这里需要修改成21。 
  
-6. 接下来在simple_gatt_profile.c的SimpleProfile_AddService函数中对characteristic6的simpleProfileChar4Config参数分配内存并初始化配置属性表。+>**注意**:修改 simpleProfileAttrTbl [ SERVAPP_NUM_ATTR_SUPPORTED ]数组大小,SERVAPP_NUM_ATTR_SUPPORTED 定义的是 17 ,由于我们添加了 4 个属性,所以这里需要修改成 21 。 
 + 
 +6. 接下来在 simple_gatt_profile.c 的 SimpleProfile_AddService 函数中对 characteristic 6 的 simpleProfileChar4Config 参数分配内存并初始化配置属性表。 
 ````C ````C
 //examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\src\app\simple_peripheral.c  SimpleProfile_AddService line 419 //examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\src\app\simple_peripheral.c  SimpleProfile_AddService line 419
行 115: 行 132:
 ```` ````
  
-7. 回调改写,走读一下SimpleProfile_SetParameter()这个函数可以发现TI的处理过程是每次设置参数后会调用回调读取当前值,然后使用通知发送出来,所以如果要成功的使用通知发送数据,还必须在simpleProfile_ReadAttrCB回调函数中增加characteristic6的代码。在simple_gatt_profile.c文件中simpleProfile_ReadAttrCB函数里添加如下代码:+7. 回调改写,走读一下 SimpleProfile_SetParameter() 这个函数可以发现TI 的处理过程是每次设置参数后会调用回调读取当前值,然后使用通知发送出来如果要成功的使用通知发送数据,还必须在 simpleProfile_ReadAttrCB 回调函数中增加 characteristic 6 的代码。 
 +在 simple_gatt_profile.c 文件中 simpleProfile_ReadAttrCB 函数里添加如下代码: 
 ````C ````C
 //examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\src\app\simple_peripheral.c  simpleProfile_ReadAttrCB line 670 //examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\src\app\simple_peripheral.c  simpleProfile_ReadAttrCB line 670
行 124: 行 143:
 ```` ````
  
-经过上面7步就完成了增加通知属性的characteristic特征值,我们可以通过按键方式或者将就程序现成的定时器每秒进行一次通知。这里我们演示使用定时器每秒通知一次characteristic6的值在simple_peripheral.c文件里SimpleBLEPeripheral_performPeriodicTask函数中增加下面代码+经过上面 7 步就完成了增加通知属性的 characteristic 特征值,我们可以通过按键方式或定时器每秒进行一次通知。本文演示的是使用定时器每秒通知一次characteristic 6 的值在 simple_peripheral.c 文件里 SimpleBLEPeripheral_performPeriodicTask 函数中增加下面代码: 
 ````C ````C
 //examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\src\app\simple_peripheral.c  SimpleBLEPeripheral_performPeriodicTask line 1380 //examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\src\app\simple_peripheral.c  SimpleBLEPeripheral_performPeriodicTask line 1380
行 131: 行 151:
 ```` ````
  
-如下图所示,使用BLE Device Monitor就能接收到开发板发送出来的数据,这里显示的abcde和我们设置的一样。+如下图所示,使用 BLE Device Monitor 就能接收到开发板发送出来的数据,这里显示的 abcde 和我们设置的一样。 
 ![](http://www.leconiot.com/md_res/cc2640r2f/ble_stack_app/app_examples/notify_characteristic/image/characteristic6.png) ![](http://www.leconiot.com/md_res/cc2640r2f/ble_stack_app/app_examples/notify_characteristic/image/characteristic6.png)
  
cc2640r2f/notify_characteristic6.1504168239.txt.gz · 最后更改: 2021/06/22 23:14 (外部编辑)