【BLE-CC2640】CC2640之自定義週期事件
本篇博文最後修改時間:2017年06月02日,00:29。
一、簡介
本文以SimpleBLEPeripheral工程為例,介紹如何使用系統提供的定時器執行一個自定義的週期事件。
二、實驗平臺
協議棧版本:ble_cc26xx_2_01_00_44423
編譯軟體:IAR Embedded Workbench for ARM Version 7.40
硬體平臺:CC26xxDK開發板
模擬器:XDS100V3(香瓜)
三、
博主:甜甜的大香瓜
宣告:喝水不忘挖井人,轉載請註明出處。
原文地址:http://blog.csdn.NET/feilusia
聯絡方式:[email protected]
香瓜BLE之CC2541群:127442605
香瓜BLE之CC2640群:557278427
香瓜BLE之Android群:541462902
香瓜微控制器之STM8/STM32群:164311667香瓜微控制器之Linux群:512598061
香瓜微控制器之職場交流群:450154342
甜甜的大香瓜的小店(淘寶店):https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i 四、實驗前提 1、在進行本文步驟前,請先閱讀以下博文: 暫無 2、在進行本文步驟前,請先實現以下博文:
暫無
五、實驗步驟
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: [email protected]
//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中)
//GUA
static 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之自定義週期事件
本篇博文最後修改時間:2017年06月02日,00:29。 一、簡介 本文以SimpleBLEPeripheral工程為例,介紹如何使用系統提供的定時器執行一個自定義的週期事件。 二、實驗平臺 協議棧版本:ble_cc26xx_2_01_00_44423
【Qt】Qt之自定義介面(實現無邊框、可移動)【轉】
簡述 UI設計是指對軟體的人機互動、操作邏輯、介面美觀的整體設計。好的UI設計不僅是讓軟體變得有個性、有品位,還要讓軟體的操作變得舒適簡單、自由,充分體現軟體的定位和特點。 愛美之心人皆有之。其實軟體介面就像工業造型一樣,是產品的重要賣點。一個產品擁有美觀的介面會給人帶來舒適的視覺享受,拉近人與產品的
【Qt】Qt之自定義介面(窗體縮放-跨平臺終極版)【轉】
簡述 通過上一節內容,我們實現了窗體的縮放,功能很不錯,但是很遺憾-不支援跨平臺!如果對於多平臺來說,這是一個硬傷,所以,我們急需要一個能夠支援跨平臺的實現方案。 在網上看到過很多不同的實現方式,多多少少會存在一些問題-要麼融合度太高、要麼不能很好地進行移動、縮放。基於前人的分享與總結,最後,我花了很
【Qt】Qt之自定義介面(右下角冒泡)【轉】
簡述 網頁右下角上經常會出現一些提示性的資訊,桌面軟體中也比較常見,類似360新聞、QQ訊息提示一樣! 這種功能用動畫實現起來很簡單,這節我們暫時使用定時器來實現,後面章節會對動畫框架進行詳細講解。 下面我們來實現一個右下角冒泡的功能。 簡述 效果 實現原理 實現 效果
【Qt】Qt之自定義介面(QMessageBox)【轉】
簡述 通過前幾節的自定義窗體的學習,我們可以很容易的寫出一套屬於自己風格的介面框架,通用於各種窗體,比如:QWidget、QDialog、QMainWindow。 大多數窗體的實現都是採用控制元件堆積來完成的,只要思路清晰,再複雜的介面實現起來都遊刃有餘。下面我來列舉一個由QMessageBox擴充套
【Qt】Qt之自定義搜尋框【轉】
簡述 關於搜尋框,大家都經常接觸。例如:瀏覽器搜尋、Windows資源管理器搜尋等。 當然,這些對於Qt實現來說毫無壓力,只要思路清晰,分分鐘搞定。 簡述 效果 細節分析 原始碼下載 效果 細節分析 實現細節需要如下步驟: 組合實現,輸入框+
【Qt】Qt之自定義介面(窗體縮放)【轉】
簡述 通過前兩節內容,我們實現了自定義窗體的移動,以及自定義標題欄-用來顯示窗體的圖示、標題,以及控制窗體最小化、最大化、關閉。 在這之後,我們還缺少窗體的縮放-當滑鼠移動到窗體的邊框-左、上、右、下、左上角、左下角、右上角、右下角時候,滑鼠變為相應的樣式,並且窗體可以隨著滑鼠拖動而進行放大、縮小。
【Qt】Qt之自定義介面(新增自定義標題欄)【轉】
簡述 通過上節內容,我們實現了自定義窗體的移動,但是我們缺少一個標題欄來顯示窗體的圖示、標題,以及控制窗體最小化、最大化、關閉的按鈕。 自定義標題欄後,所有的控制元件我們都可以定製,比如:在標題欄中新增換膚、設定按鈕以及其他控制元件。 簡述 效果 自定義標題欄 實現 介面說明
【轉】Android之自定義裝置管理
需求:控制手機的攝像頭和錄音全部禁用~ 這篇文章使用android提供的裝置管理器類DeviceAdminReceiver ,來實現禁用手機攝像頭的功能,還能夠改變密碼,鎖屏,重啟等功能,具體功能請去查API,如果我沒記錯的話有5千多行... ... 但是這篇文章主
【C語言】字串處理自定義函式
1、字串求長度 #include <stdio.h> int Mystrlen1(const char *str) { int i=0; while(*(str++)!='\0') { i++; } return i; } int Mystrlen2(cons
【工具篇】Android studio 自定義註釋快速生成
前言 團隊協作中,儘量保證各自程式碼自己維護。這樣既能保證程式碼編寫者在邏輯上的一慣性,也能避免修改不熟悉的程式碼而引起bug問題。但即使是這樣的規避,也依然無法避免程式設計師之間程式碼的混合。所以,針對在一個類中,產出幾個人同時需要添注的程式碼。最好能做程式碼註釋的區分。這樣為長時間後的程式碼
【TP5.1】command配置自定義命令
author:咔咔 wechat:fangkangfk 之前我們自定義命令都是修改原始碼實現的,今天我們來會一會command 首先在我們設定的名稱空間data裡邊創建出對應的資料夾 雖然我們在command配置自定義命
【PE/vs】Visual Studio自定義生成工具配置方法和相關vs系統變數含義
DATE: 2018.11.20 1、自定義生成工具配置方法 以x86純彙編編譯為例: x86純彙編的編譯需要yasm彙編器工具,在VC系統路徑下檢視當前系統中是否含有可用的yasm.exe: where yasm.exe 可以將yasm.exe放在C盤windo
【資源分享】Gmod-Expression2 - 自定義像素畫生成
entity disable bubuko 像素 video print ont erl ima *作者:BUI* 可自定義制作屬於你的像素畫(默認為Sans) 第77行的COLOR可編輯你想要的顏色(RGB值) 1,2,3,4分別代表第77行所定義的
【前端庫】jscrollpane.js 自定義滾動條
前言 jScrollPane是一個jQuery外掛,它允許用HTML結構替換瀏覽器的預設滾動條(在具有溢位的元素上:auto),可以在css中自定義html。jScrollPane的設計靈活但非
【Android intent】android 攔截自定義字尾檔案的intent請求
問題:如何開啟自定義字尾名(檔名.aaa) <intent-filter> <action android:name="android.intent.action.
【小作業】為NLog自定義LayoutRenderer
長話短說 前文《解剖HttpClientFactory,自由擴充套件HttpMessageHandler》主要想講如何擴充套件HttpMessageHandler, 示例為在每個Http請求中的日誌中顯示TraceId, 現在來完成課後的小作業: 將TraceId顯示到Nlog的Layou
【轉】Spring MVC系列(五)之自定義數據綁定---HandlerMethodArgumentResolver
開閉 src pat 獲取參數 mvc .net 定義 開閉原則 淺析 介紹 前面幾節我們介紹了Spring MVC的幾種常見的數據綁定的方法,可以靈活地獲取用戶請求中的參數,例如@PathVariable,@ModelAttribute,@RequestPar
【Android自定義View實戰】之自定義評價打分控制元件RatingBar,可以自定義星星大小和間距
在Android開發中,我們經常會用到對商家或者商品的評價,運用星星進行打分。然而在Android系統中自帶的打分控制元件,RatingBar特別不好用,間距和大小無法改變。所以,我就自定義了一個特別好用的打分控制元件。在專案中可以直接使用,特別簡
【Android自定義View實戰】之自定義超簡單SearchView搜尋框
package cn.bluemobi.dylan.searchview; import android.content.Context; import android.text.Editable; import android.text.TextWatcher; import android.util.A