【BLE-CC2640】CC2640之自定义周期事件
来源:互联网 发布:overlay软件 编辑:程序博客网 时间:2024/05/17 04:36
本篇博文最后修改时间:2016年08月28日,00:29。
一、简介
本文以SimpleBLEPeripheral工程为例,介绍如何使用系统提供的定时器执行一个自定义的周期事件。
二、实验平台
协议栈版本:ble_cc26xx_2_01_00_44423
编译软件:IAR Embedded Workbench for ARM Version 7.40
硬件平台:CC26xxDK开发板(阿莫)
仿真器:XDS100V3(阿莫)
三、版权声明
博主:甜甜的大香瓜
声明:喝水不忘挖井人,转载请注明出处。
原文地址:http://blog.csdn.NET/feilusia
联系方式:897503845@qq.com
香瓜BLE之CC2541群:127442605
香瓜BLE之CC2640群:557278427
香瓜BLE之Android群:541462902
五、实验步骤
1、定义周期事件
1)定义周期事件的宏(simpleBLEPeripheral.c中)
#define SBP_GUA_PERIODIC_EVT 0x0020 //香瓜周期事件
2)添加周期事件的处理(simpleBLEPeripheral.c的SimpleBLEPeripheral_taskFxn中)
//香瓜周期事件 if (events & SBP_GUA_PERIODIC_EVT) { events &= ~SBP_GUA_PERIODIC_EVT; //再次启动定时器 Util_startClock(&GUA_periodicClock); //香瓜周期处理函数 GUA_performPeriodicTask(); }放在其他事件之后即可。
2、定义及声明周期事件的处理函数(simpleBLEPeripheral.c中)
1)定义周期事件的处理函数
//****************************************************************************** //name: GUA_performPeriodicTask //introduce: 周期事件的处理函数 //parameter: none //return: none //author: 甜甜的大香瓜 //email: 897503845@qq.com //QQ group 香瓜BLE之CC2640(557278427) //changetime: 2016.08.28 //****************************************************************************** static void GUA_performPeriodicTask(void){}这里没做任何处理,可自行添加如LED闪烁、串口打印等,方便查看现象。
2)声明周期事件的处理函数
static void GUA_performPeriodicTask(void);
3、初始化定时器
1)定义定时器结构体数据(simpleBLEPeripheral.c中)
//GUAstatic Clock_Struct GUA_periodicClock;
2)设置定时时间(simpleBLEPeripheral.c中)
//GUA#define SBP_GUA_PERIODIC_EVT_PERIOD 3000 //香瓜定时时间这里设置为3000ms。
3)初始化定时事件(simpleBLEPeripheral.c的SimpleBLEPeripheral_init中)
//初始化定时器 Util_constructClock(&GUA_periodicClock, SimpleBLEPeripheral_clockHandler, SBP_GUA_PERIODIC_EVT_PERIOD, 0, false, SBP_GUA_PERIODIC_EVT); //启动定时器 Util_startClock(&GUA_periodicClock);
注意一个是定时器初始化函数,另一个是启动定时器函数。必须两个都有,定时器才能被启动起来。
simpleBLEPeripheral工程默认一上电虽然进行了定时器初始化,而启动定时器放在连接回调事件中,因此只有连接之后才会执行工程中默认的定时器周期函数。
六、实验结果
设置断点在周期事件中,仿真查看,可发现约3S进一次事件。
因此,实验成功。
- 【BLE-CC2640】CC2640之自定义周期事件
- 【BLE-CC2640】CC2640之自定义按键
- 【BLE-CC2640】CC2640之添加自定义服务
- 【BLE-CC2640】CC2640之LED
- 【BLE-CC2640】CC2640之按键
- 【BLE-CC2640】CC2640之串口
- 【BLE-CC2640】CC2640之RTC
- 【BLE-CC2640】CC2640之OLED
- 【BLE-CC2640】CC2640之bootloader
- 【BLE-CC2640】CC2640之SNV
- 【BLE-CC2640】CC2640之使用自定义128bit的UUID
- [BLE]CC2640之定时器(Clock)事件
- [BLE]CC2640之定时器(Clock)事件
- BLE-CC2640之添加自定义服务
- [BLE]CC2640之ANCS
- 【BLE-CC2640】CC2640之快速入门
- 【BLE-CC2640】CC2640之配对与绑定
- 【BLE-CC2640】CC2640之修改发射功率
- Fragment,Activity,FragmentManager之间那点事
- 互联网金融系列-支付清算体系介绍-上
- unity-动画中加入控制曲线
- iOS网络编程--NSURLConnection
- EsayUI 获取 行数ID 当前页 每页行数
- 【BLE-CC2640】CC2640之自定义周期事件
- MySQL ERROR 1153 解决办法
- 互联网金融系列-支付清算体系例子-下
- MonoGC原理—SGen
- UVa 197 - Cube
- 前端开发面试题收集(css部分)
- android获取cpu信息
- LRU缓存实现(Java)
- unknow 前端开发面试题收集(css部分)