cc2541發現服務與特徵值

本文轉載自“甜甜的大香瓜”的博客


一、簡介

本篇以SimpleBLECentral工程爲例,解析CC2541作爲主機時是如何發現從機的服務和特徵值的。


二、實驗平臺

協議棧版本:BLE-CC254x-1.3.2

編譯軟件:IAR 8.20.2

硬件平臺:smart RF開發板


三、服務和特徵值

一個工程可以有多個服務,比如按鍵服務、心率計服務、溫度計服務。

一個服務可以有多個特徵值,特徵值是主從機傳輸數據的媒介,像運人渡河的小船。


如果主機要想獲得按鍵服務的特徵值,必須先發現按鍵服務、再獲得按鍵服務的特徵值句柄、再根據特徵值句柄獲取特徵值。


四、代碼解析

1、啓動發現服務事件

在連接完成時,主機會判斷是否之前獲取過特徵值句柄,如果沒有獲取到,則調用定時器進“START_DISCOVERY_EVT事件”開始發現服務。


2、發現服務事件


3、發現服務的函數

默認發現的是UUID爲FFF0的服務。


4、發現服務的回調函數

發現服務後,就會進入該函數。

此時可以通過特徵值的UUID來讀取對應的特徵值句柄。默認的是讀取CHAR1的特徵值句柄。


5、獲得特徵值句柄

讀到特徵值句柄後會再次進入該回調函數,此時將特徵值句柄保存下來,隨口可用來操作特徵值。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章