前言
Nordic公司为nRF51系列SOC提供有完整的开发SDK包,里面有大量的例程,通过学习官方例程并最终应用到自己项目工程中是一个比较高效的学习与项目开发技巧,本节将与大家一起完成蓝牙例程的移植工作,本节以S130 SDK为例 ,在移植前需先往开发板中烧录蓝牙协议栈“s130_nrf51_2.0.0_softdevice.hex”,相关的烧录操作请参看《一起学nRF51xx 18 - 蓝牙协议栈烧录》章节内容。
本示例基于nrf51822 soc,sdk版本是nRF5_SDK_11.0.0_89a8197,网官网下载地址为:https://www.nordicsemi.com/Software-and-Tools/Software/nRF5-SDK/Download#infotabs
示例详解
基于硬件平台:nrf51822ek_tm开发板。
本示例所用的最小系统板原理图:
-
- 解压并打开下载好的SDK包:
本节直接以PCA10028官方开发板工程为基础时行修改:
下图中一些文件上有红色可升级标志,右键将其升级为最新版本:
在工程配置选项中将芯片型号选为我们开发板中的NRF51822及工程输出文件名称,注意改完芯片后记得重新设置IROM1及IRAM1的值 :
调整工程主目标名称:
在工程配置选项中将C/C++宏中的开发板名字由BORD_PCA10028改成BOARD_CUSTOM,当然事先需仿照“PCA10028.h“文件针对实际所用的开发板创建“custom_board.h”文件,并将其放到\nRF5_SDK_11.0.0_89a8197\examples\bsp目录中:
上图中的宏有BLE_STACK_SUPPORT_REQD、BOARD_CUSTOM、 S130、 NRF_LOG_USES_UART=1、NRF51、SOFTDEVICE_PRESENT、SWI_DISABLE0
其中 BLE_STACK_SUPPORT_REQD、BOARD_CUSTOM、130 三个在本例中是必需的。
调试工具选择J-LINK,并将接口设置为SW口勾选下载程序后自动复位及运行:
-
- 编译与下载
- 编译工程OK:
- 编译与下载
(开发板事先已烧录了S130蓝牙协议栈)打开发板的串口接上PC,并打开电脑上的串口调试助手工具,连接上串口后,把程序烧录到开发板,可以看串口工具中看到UART START字样,说明程序成功运行,并且打开手机蓝牙查找设备,可以看到有个Nordic_Uart设备。
在手机应用市场中下载Nordic ToolBox工具并安装,打开
点“UART”进入后, 会发现有 9 个按键。 这 9 个按键的图标我们可以自行设定。而且,可以设定当点击这些图标的时候 APP 发送的数据内容。点“EDIT”,进入按键图标编辑和发送内容的编辑。
编辑完以后, 点“DONE”退出设置界面。点击 “CONNECT”连接, 会搜到名为“Nordic UART”的蓝牙设备。 点击后建立连接,然就可以按上面定义好的按键,在PC上串口工具可以看到相关的数据:
同时PC串口工具上发数据,手机端的APP同样也可以收到对应的数据(发大于20字节或带换行符,程序立即转发),如下图所示:
手机上成功接收到数据:
到这里基于官方sdk的蓝牙工程移植工作就基本完成了,是不是也很简单呢!关于nrf51xx及flash的更详细介绍可以参看《nRF51822_PS_v3.3.pdf》或https://infocenter.nordicsemi.com/index.jsp。
OK,本期实验完成!下期见!同时如果大家有什么疑问或是有想了解的其它内容,也欢迎大家留言!!最后喜欢这个公众号的同学们记得加关注了,会有不定期技术干货推出!!
文中源码资料下载,在公众号里给十三发消息:
下载|一起学nRF51xx 20
关注十三公众号