一起学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

 

关注十三公众号