一起學nRF51xx 23 -  s130藍牙API介紹

張十三

前言

通過前面的章節,我們學習了nrf51的藍牙協議棧(S130)的基本使用,對S130協議棧的實現原理有了一定了解,也認識到了S130協議棧的強大,那麼協議棧中的API接口具體是什麼功能?各個參數代表着什麼意思?具體怎麼用呢?本節將帶領大家去尋找答案。

示例詳解

本節以S130藍牙協議棧爲例,進入Nordic官網https://www.nordicsemi.com,找到product-> Low power short-range wireless -> nrf51822 bluetooth le capable soc.進入到NRF51822主頁https://www.nordicsemi.com/Products/Low-power-short-range-wireless/nRF51822

在主頁中可以看到NRF51822支持的藍牙協議棧支持S110,S120,S130三個,在主而中點Compatible Downloads(兼容的下載):

 

並在網頁尾部點擊下載按鍵就可下載S130藍牙協議及SDK(包含了大量的官方例程)了。

 

    1. 工程代碼
      1. 下面開始介紹剛剛下載的SDK與S130藍協議棧:

在SDK的解壓文件中\nRF5SDK1230\nRF5_SDK_12.3.0_d7731ad\components\softdevice也可以看到S130協議棧:

同時在\nRF5SDK1230\nRF5_SDK_12.3.0_d7731ad\examples\ble_peripheral文件夾下還有很多nordic的藍牙官方例程,很多藍牙應用就可以基本這些官方例程進行簡單修改即可。

我們回到s130nrf51201\s130_nrf51_2.0.1_API\include文件夾下可以看到S130的藍牙API接口頭文件如下圖(也不是很多):

以ble.h爲例,裏面有一些數據類型的定義及SVC接口函數的定義,函數說明:

像sd_ble_enable一樣,協議棧中所有的接口都有詳細的介紹與說明,並且按不同的功能分成了多個.h文件:

因爲API接口數量較多,本文不可能一一給大家展開介紹,本文將授之以漁,給大家直接介紹學習方法:讀者有學習過程中可以nrf_sdk中官方例程爲基礎,對例程中用到協議棧接口(主要是以sd_開頭的)都可以到協議接接口API頭文件中找到對應的說明(使用KEIL工無法直接跳轉,但可以通過全局搜索來定位到函數說明或者用Source Insight等其它工具來閱讀),對於像筆者一樣英語水平比較有限的同學來說,可以直接將接口頭文件拖入到Chrome瀏覽器中,利用Chrome自帶的翻譯功能將文件翻譯成中文件,效果如下:

 

這個大家是不是就可以很容易看懂這些(總的100多個)接口API,最後在S130協議棧的文件夾中還有如下兩個文件,建議大家也去看一下,這對大家學習整個藍牙協議棧會有幫助:

最後,還需要大家的不斷努力學習,才能在實際的工程應用中將這個藍牙協議棧應用的得心應手!!

 

文中源碼資料下載,在公衆號裏給十三發消息:

下載|一起學nRF51xx 23

 

關注十三公衆號