前言

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开发板。

本示例所用的最小系统板原理图:

  1. 解压并打开下载好的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口勾选下载程序后自动复位及运行:

  1. 编译与下载

    1. 编译工程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

关注十三公众号

一起学nRF51xx 20 -  移植SDK蓝牙例程相关推荐

  1. 一起学nRF51xx 19 -  移植SDK普通接口例程

    一起学nRF51xx 19 -  移植SDK普通接口例程 张十三 前言 Nordic公司为nRF51系列SOC提供有完整的开发SDK包,里面有大量的例程,通过学习官方例程并最终应用到自己项目工程中是一 ...

  2. 一起学nRF51xx 21 -  蓝牙项目工程的初始化流程解读

    前言 本节主要工作是对<一起学nRF51xx 20 -  移植SDK蓝牙例程>章节程序进行解读. 示例详解 基于硬件平台:nrf51822ek_tm开发板. 本示例所用的最小系统板原理图: ...

  3. 一起学nRF51xx 23 -  s130蓝牙API介绍

    张十三 前言 通过前面的章节,我们学习了nrf51的蓝牙协议栈(S130)的基本使用,对S130协议栈的实现原理有了一定了解,也认识到了S130协议栈的强大,那么协议栈中的API接口具体是什么功能?各 ...

  4. 一起学nRF51xx 18 -  蓝牙协议栈烧录

    前言 在讲协议栈前我们先简要介绍一下NORDIC公司的协议栈特点: 1 协议栈和应用程序代码没有链接时间依存性,并可独立编译和更新 2 堆栈受运行时保护,应用程序访问受限或被阻止 3 堆栈为 100% ...

  5. 一起学nRF51xx 0 - 环境搭建

    前言 物联网时代怎么能少得了蓝牙4.0,Nordic的nRF5x系列MCU如 nRF51822 是功能强大.高灵活性的多协议 SoC,非常适用于 Bluetooth® 低功耗和 2.4GHz 超低功耗 ...

  6. 一起学nRF51xx 1 - GPIO

    一起学nRF51xx 1 -  GPIO 张十三 前言 上图是以这32个GPIO引脚中的GPIO 0为例介绍GPIO的结构.每一个GPIO口有对应的一个PIN_CNF寄存器.通过该寄存器可以配置以下参 ...

  7. 一起学nRF51xx 22 -  实现一个具体SVC调用功能的demo

    前言 上一节<一起学nRF51xx 21 -  蓝牙项目工程的初始化流程解读>讲到nordic的蓝牙协议栈是通过SVC来实现APP与协议栈之间通接口调用的,那么如何来实现一个具体SVC调用 ...

  8. 一起学nRF51xx 17 -  lpcomp

    前言 nRF51系列SOC内部低功耗比较器(LPCOMP)的使用.此比较器类似于用运放搭建的比较器,当VIN+输入的电压大于VIN-输入的电压,输出结果为高电平:当VIN+输入的电源小于VIN-输入的 ...

  9. 一起学nRF51xx 16 -  adc

    前言 nRF51的ADC设计得比较简单,它有几个可配置的部分: 1)PSEL(pinselection):nRF51系列芯片有8个模拟输入通道,并且这几个脚是固定的,不能像GPIO那样可以重新映射.P ...

最新文章

  1. .bashrc: line 123: syntax error: unexpected end of file
  2. Modelsim仿真如何查看内部信号
  3. Java多线程核心知识
  4. 如何扩展Android富文本之Html标签
  5. 2张表,轻松搞定你的收入问题
  6. Oracle 监听配置详解(转载)
  7. 问道五周年服务器维护公告,问道五周年 欢乐嘉年华
  8. 飞鸽传书2012 的网络通信代码
  9. Java微服务之Spring Boot on Docker,java开发面试笔试题
  10. LeetCode 99. Recover Binary Search Tree
  11. Egret入门学习日记 --- 第二十篇(书中 9.1~9.3 节 内容 组件篇)
  12. 李践《高效人士的五项管理-行动日志》 表格
  13. java工程师读音_JAVA怎么念
  14. 第二章 工具变量法(IV)与两阶段最小二乘法
  15. VRRP:虚拟网关冗余技术
  16. 人工智能、机器学习、神经网络和深度学习的发展历程(上)
  17. urllib3爬取网页源代码(爬虫)
  18. 为什么世界上没有安全的工作?
  19. 计算机网络钟中PCF,请问,为什么我向时钟芯片PCF8563中写入初始化数据后,读出来...
  20. ZJNU 2448 Spiderman

热门文章

  1. SpringMVC详细执行流程整理
  2. 2017年第10批 手机号正则表达式
  3. Ubuntu cocos2d-x 3.13版本游戏开发学习系列3 Cocos2d-x的坐标系
  4. 网站首页head区代码规范
  5. matlab生成实指数序列、matlab茎状图
  6. Java Ant 学习总结
  7. 搞定JSP第一个Servlet例子并且还是手动编译
  8. 微信小程序对接阿里云视频点播,备忘
  9. for,while循环
  10. 移动端总结和手机兼容问题