BLE-CC2541專案的一點經驗記錄
BLE之CC2541做低功耗智慧硬體
介紹
最近由於專案需要,使用CC2541做一款類似於藍芽手環的智慧硬體,可實現採集人體的溫度,裝置的電量,藍芽訊號強度(防丟器),等簡單的功能。雖然說基於TI提供的SDK來做開發,難度不是很大,但是這中間依然遇到了一些比較令人頭大的問題,記錄下來,以便以後查閱,也給以後的新手一個提示。開發環境
(1)軟體
整個開發是在TI提供的BLE-CC254x-1.3.2協議棧基礎上進行的,要想執行這一套協議棧和裡面提供的例程,必須要IAR Assembler for 8051 9.30.1.3056 (9.30.1.3056)以上的開發環境,這個現在晚上已經有和諧版本的,需要安裝之後自行破解。按照教程一步一步來就沒有多大的問題。
另外還需要安裝幾款TI提供的BLE開發除錯軟體:BLE Device Monitor ,BTool ,SmartRF Flash Programmer,SmartRF Packet Sniffer ,SmartRF Studio 7 。我已經把這些個軟體打包整理好了。(2)CC2541開發板
我的裝置沒有下載除錯介面,這個也是最坑的,以至於開發效率太低下了。以後開發裝置,裝置上面一定要留出除錯介面,等產品迭代穩定之後,再去掉除錯介面我前期所有的開發全是在開發板上面進行的。
(3)CC Debugger(4)USB Dongle
(5)IOS端的BLE sensor Tag 和Android端的device monitor也是不錯的除錯助手。
安裝完成以上的軟體,你可以開啟TI提供的一個簡單的例程,編譯並燒錄到板子裡面,然後開啟BTOOL軟體,利用USB Dongle來 scan -> load seeting -> establish 之後就可以抓到藍芽的裝置傳送的資料包了。
如果你已經完成了以上的步驟,那麼恭喜你,你已經入門BLE的開發了。藍芽協議棧的理解
(1)OSAL
要理解TI的藍芽協議棧,OSAL是繞不開的,如果對嵌入式作業系統或者Linux比較熟悉朋友,應該理解起來非常快。
(2)Profile具體的開發
我的開發工作是在TI提供的例程KeyFob Demo的基礎上進行的。利用了裡面提供的基本服務,Generic Access Service ,Generic Attributes Service,Device information Service ,Simple Profile Service,自己根據需要添加了兩個服務:Simple Key Service, OAD service。在TI提供的額例程基礎之上進行應用層的開發,其實非常簡單,主要就是理解一下一下幾個概念。
(1)任務
(2)事件
(3)訊息機制
(4)回撥函式
(5)HAL
hal是TI提供的一個硬體驅動,裡面含有所有的CC2541內部模組的驅動,一般來說我們都不需要直接對這個硬體抽象層進行操作。我們只需要在框架之上Power Saving機制
說道低功耗,這個是現在的智慧硬體的一個趨勢。為了提高使用者體驗,TI官方宣稱CC2541在一顆鈕釦電池供電的情況下,可以實現待機一年。那是在裝置進入超低功耗PM3的情況下實現的。正常情況下,我們的裝置需要頻繁的喚醒,說道低功耗就要研究一下協議棧裡面是如何實現裝置的休眠與喚醒的哪?
在實際的開發過程中,功耗的多少是和裝置執行的具體的任務掛鉤的,當OSAL檢測到沒有定時任務在進行的時候,系統會從active模式進入PM2模式,在該模式下,系統的睡眠定時器是在計時,當time out之後,系統會自動的喚醒。如果程式沒有定時任務需要執行,系統會進入到最低功耗PM3的模式。這個時候就只有復位操作或外部中斷才能喚醒系統。OAD (空中升級)
不得不說這是一個非常有用的功能,特別是在現在的智慧硬體需要不斷迭代的情況下。可以直接通過我們的軟體包或者專門的APP就可以實現無線升級韌體,免去了下載介面,大大縮小了產品的尺寸空間。本來想簡單的總結一下,發現很多東西無法說的太細,還是在重新看一篇,將一些實質的細節問題。(待續)
相關推薦
BLE-CC2541專案的一點經驗記錄
BLE之CC2541做低功耗智慧硬體 介紹 最近由於專案需要,使用CC2541做一款類似於藍芽手環的智慧硬體,可實現採集人體的溫度,裝置的電量,藍芽訊號強度(防丟器),等簡單的功能。雖然說基於TI
運作開源專案的一點經驗
上週我在 PHPUK 上面講了一些關於開源專案的內容。我想把它們整理一下都記錄下來,以免忘記。也許我不太適合來給出一些這方面的建議,但這些都是我運營 joind.in 的一些真實、重要的總結。 社群(Community) 你喜歡一個專案,分享了它的程式碼,並且公佈了它,這就算是開源專案嗎?在我看來這不是
使用Unity開發專案的一點經驗
原帖地址:http://www.gamengines.com/article-541--9.html感謝 bigbird的辛苦編寫和無私分享我們主要使用3dsmax2010進行製作,輸出FBX的型別匯入unity3d中。預設情況下,3dsmax8可以和U3D軟體直接融合,
實體拼錯名字,一點經驗教訓
3.0 map lips 和數 ips 常熟 pro left join 個人 這次的項目中出了一個問題,問題不大,可是挺坑的… V 3.0的時候我們使用Hibernate完畢實體和數據庫的映射,當時有人把
做sxy官網的一點經驗
offset true document container fse dev cnblogs 可用 滾輪 jquery2及以上不再支持IE8;IE不支持document.body.scrollTop, 也不支持$().scrollTop(), 用 var top = wi
編譯網易雲信專案錯誤問題記錄
錯誤一: Error:(6, 0) Gradle DSL method not found: 'google()' 出現這樣的錯誤,主要的原因就是AndroidStudio沒有升級到3.0和Gradle plugin沒有升級到V3.x版本。解決該問題如下: 把google(
Java debug經驗記錄
Cant find symbol 識別符號錯誤: 1)通用識別符號錯誤 * 大小寫,拼寫錯誤 String寫成 string之類 2)變數識別符號錯誤 * 未申明變數直接使用 * 申明變數生命長度輻射不到被引用處 3)方法名識別符號錯誤 * 引用一個不存在的繼承方法 4)類名識別符
經驗記錄薄
資料方面 1,如何檢查,查詢出來的,拿來使用的資料是否可靠,正確,無汙染? 檢查方面: 1,先查資料的源在那裡,看看資料從哪裡插入表中的。 2,再看,該表中的資料,在我們使用前,有沒有被修改過。 3,再看,我們拼寫的sql語法是否正確,查詢的方式,結果是否是我們想要得到
vue專案shou優化記錄
1.起因 專案打包的時候發現部分檔案過大:vender.js有400K,app.css高達1.6M。看著這個數值,瞬間凌亂。 2.優化 2.1 優化vender.js 是因專案的依賴 vue、vue-router、vuex、axios 造成的,可使用cdn,注意更換對應版本號 <
java專案開發經驗總結
"我自己是一名從事了8年的j a v a全棧開發工程師,辭職目前在做線上教育講師,來了就是我學生,有不懂的可以問我 今年4月我花了一個月整理了一套比較系統適合2018年學習的 j a v a資料,從基礎的面向物件到執行緒, j d b c都有整理,送給每一位小夥伴,這裡是學習者聚集地,如果你
配置tomcat的一點學習記錄
1.官網下載解壓版本tomcat-7.0.90 2.解壓後啟動tomcat目錄下的startup.bat檔案(windows平臺) 3.瀏覽器訪問網址:http://localhost:8080/ 訪問成功則表示tomcat啟動成功 4.tomcat的主配置目錄 conf/server.xml 5.
正點原子戰艦開發板---串列埠除錯(硬體除錯的一點經驗吧)
1、為什麼需要串列埠除錯? 因為自己在設計電路畫板子的時候,很多時候都要用到串列埠,比喻語音模組,藍芽模組等等。 2、硬體原理圖明明是對的,程式也改了,但是用串列埠printf效果就是不出來,應該怎麼辦? (1)在開發板上驗證程式碼,我這裡用的是正點原子戰艦的開發板,我程式中用的是串列埠
關於微信小程式的一點經驗
2018年的11月份,自己做微信小程式相關的專案已經有四個月,這四個月自己走過很多彎路,也學到了不少經驗,下面就一一總結: 一,微信小程式的radio元件是可以改變按鈕樣式的(比如大小,顏色等等) 改變大小解決辦法:https://blog.csdn.net/iafmay/article/details/
談談接入各種第三方推送平臺的技術方案和一點經驗
在移動網際網路時代,為了運營好一個APP,訊息推送是一個優質廉價的渠道。訊息推送的使用場景簡單來說,可以包括運營類的訊息推送,如活動推廣期間的推送等,還包括通知類的訊息推送,如社交場景中的新訊息提醒等。 對於APP來說,訊息推送能夠起到內容告知、提高日活,甚至召回使用者的作用。那麼如何接入第三方推送平臺呢
Openssh arm移植經驗記錄
Openssh arm移植經驗記錄 參考資料: https://blog.csdn.net/yasirliberty/article/details/51274971 https://blog.csdn.net/zhongruixian/article/details/21076405
YOLOv3 學習筆記:大神好貼彙總+自身經驗記錄
轉載自可愛的實驗室大神師姐,原文地址:https://blog.csdn.net/u011649150/article/details/81038645 一、學習 YOLOv3 YOLOv3論文 YOLOv3:An Incremental Improvement 全文翻譯 【目標
使用logback為springboot專案做日誌記錄
在resources目錄下新建 logback-spring.xml 檔案,內容如下: <?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 存放日誌檔案的目錄 --
電商專案實戰 搜尋記錄+清空+資料庫 自定義view
主頁面 initView();//初始化控制元件 dataBase = new FlowDataBase(this); List<String> list = dataBase.query(); for (int i = 0; i <
未明學院:量化金融訓練營開始報名,成為兼具資料分析技能+專案實戰經驗的複合型人才!
想進金融行業卻不懂資料?你正在失去機會 吳軍在《矽谷之謎》一書中說,“大資料的本質,就是通過資訊消除不確定性”,而不確定性,在金融領域,就意味著收益和風險。 金融行業天然要跟資料打交道,幾乎不存在與資料完全無關的崗位。金融從業者需要利用計算機技術從龐大的資料中獲得別人看不見的資訊,以資料分析
配合Opencv2.4.9,CMake3.12.1和VS2010在win10下構建專案踩坑記錄
配合Opencv3,CMake和VS2010在win10下構建專案踩坑記錄 參考https://blog.csdn.net/qq_26623659/article/details/78322782 博文中是x64,但是我配置的是x86。 這個部落格中的內容