nRF51822 入门必备教程(一篇搞定nRF51)

这篇具有很好参考价值的文章主要介绍了nRF51822 入门必备教程(一篇搞定nRF51)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

微雪 NRF51822 Eval Kit 

开箱检测

部署PC端开发环境

  • nRFgo Studio v1.14或更高版本

  • Keil MDK-ARM Lite v4.54或更高版本

  • J-Link Software v4.52b或更高版本

下载手机端app

  • IOS系统:进入App Store并搜索“nRFToolbox

  • Android系统(4.3或更高):下载nRFToolbox,解压后安装即可

注意:蓝牙4.0和传统蓝牙的开发方法不同,首先需要手机支持蓝牙4.0,并且安装了相应的APP,才可以搜到蓝牙4.0的广播信号

与手机连接(演示蓝牙转串口程序)

a) 安装CP2102驱动

b) 将BLE400的mini USB接口与PC机相连

c) 打开串口调试助手,选择相应的COM口,波特率为38400,8位数据位,1位停止位,点击打开串口

d) 发送字符Yy,如回显Start...则表示蓝牙已经开始发送广播数据,此时可以看到BLE400的LED0亮。

注意:出厂程序的前一部分是模块自检,显示的信息可忽略。

e) 手机端开启蓝牙功能。

f) 打开nRFToolbox,并点击进入UART,单击CONNECT按钮,在列表中选中Nordic_UART,此时BLE400的LED0灭/LED1亮,表明手机与模块连接成功。

g) 按APP上的按钮,在串口上可以收到相应的字符。(APP上的按钮信息需要用户自己定义)

nRF51822 入门必备教程(一篇搞定nRF51)

h) 点击Show Log,在串口助手中,发送字符串abcdefghijklmnopqrs,在LOG列表中会打印相应的信息。

nRF51822 入门必备教程(一篇搞定nRF51)

注意:每当蓝牙收到19个字符,在APP上才会回显数

据。

程序说明

安装SDK

a) 安装Keil MDK-ARM(v4.54以上)和J-Link for Windows。

b) 保存nRF51 SDK,打开nrf51_sdk_v5_2_0_xxxxx.msi进行安装,并确保选择了KeilMDK-ARM安装选项。

c) 注意:如果SDK安装报错,请下载并安装Microsoft .NET Framework 3.5。

d) 安装nRFgo Studio(32位系统安装nrfgostudio_win-32_1.15.1_installer.msi,64位系统安装nrfgostudio_win-64_1.15.1_installer.msi)。

示例程序下载说明

示例程序下载方法对于不同的程序,有细微的差别。下面两个小节,将用blinky测试程序和ble_app_hrs测试程序为范例,进行下载操作说明。

这两个程序的区别在于:

  • 编译下载blinky测试程序,这个相当于裸机程序,比较简单。下载一个application就能使用。

  • 编译下载ble_app_hrs测试程序,这个可以理解为跑操作系统的程序,需要先下载softdevice,再下载application,才能使用。

编译下载blinky_example测试程序

a) 开发板出厂时已预装程序,下载其他程序之前,需使用nRFgo Studio全部擦除程序。首先点击“nRF51 Programming”,之后点击“Erase all”全部擦除后方可烧写其它程序。

nRF51822 入门必备教程(一篇搞定nRF51)

图1. Erase all步骤

b) 在Keil μVision中打开Blinky工程,其路径为: <KEIL path> \ARM\Device\Nordic\nRF51822\Board\PCA10001\blinky_example\arm\blinky.uvproj

或 ...\code\BLE4.0\nrf51822\Board\pca10001\blinky_example\arm\blinky.uvproj

c) 点击Build图标,或者使用快捷键F7编译Blinky工程。

d) 点击Download图标,下载并运行Blinky演示程序。可以看到LED开始闪烁。

nRF51822 入门必备教程(一篇搞定nRF51)

图2. 用Keil下载

注意:

这里可能会出现nrf51.h(119): error:  #5: cannot open source input file "core_cm0.h"报错,解决办法参考后面的常见问题。

由于Jlink固件与nordic SDK配合的问题,部分KEIL无法正常下载。

此时,请使用nRFgo Studio左下的“nRF51 Programming”,之后点击“Program Application”选项框下载。

nRF51822 入门必备教程(一篇搞定nRF51)

图3. Program Application

编译下载ble_app_hrs测试程序

a) 下载S110 nRF51822 SoftDevice(蓝牙协议栈):

s110_nrf51822_6.0.0-单片机文档类资源-CSDN下载

选择nRF51 Programming > Program SoftDevice> Browse(选择相应的蓝牙协议栈) > Program(等待蓝牙协议栈下载完毕)。(我们使用的协议栈文件s110_nrf51822_6.0.0_softdevice.hex,是通过解压\Software\s110_nrf51822_6.0.0.zip得到的。)

nRF51822 入门必备教程(一篇搞定nRF51)

图4. Program SoftDevice

b) 进入<KEIL path> \ARM\Device\Nordic\nrf51822\Board\pca10001\s110\ble_app_hrs\arm 或<code path>\BLE4.0\nrf51822\Board\pca10001\s110\ble_app_hrs\arm

打开Keil工程文件

c) 按上面的提到的进行编译下载。

各程序功能简介

a) 以下所有程序路径为:<code path>\BLE4.0\nrf51822\Board\pca10001且所有跳线都已连接。

b) 下表中的步骤序号,请参考表格下方的备注栏。

c) 操作涉及步骤②的,下载方法请参考上文“编译下载ble_app_hrs测试程序”。

d) 其他的程序下载方法请参考上文“编译下载blinky_example测试程序”

程序名称 操作与主要现象
blinky_example LED闪烁
uart_example ①,回显串口发送信息
at45dbxx_example ①,将AT45DBXX DataFlash Board接到SPI接口

串口将打印该模块的ID

at24cxx_example ①,将AT24CXX EEPROM Board接到I2C接口

按开发板的KEY1,串口将打印指定地址的数据

按开发板的KEY2,指定地址的数据加1

button_radio_example\led_radio_example 准备两块开发板,分别称之为A和B

开发板A下载button_radio_example

开发板B下载led_radio_example

按下开发板A的KEY1,开发板B的LED0闪烁

按下开发板A的KEY2,开发板B的LED1闪烁

ble_app_beacon ②,③,④
ble_app_proximity ②,③,④
ble_app_uart ①,②,③,④,手机的数据发到串口上

备注: ① 通过数据线将开发板与PC相连,打开串口调试助手,波特率为38400,8位数据位,1位停止位 ② 下载Program SoftDevice ③ 测试软件为:LightBlue(iOS) ④ LightBlue中显示相关信息

表1. 示例程序功能介绍

常见问题

问: nRFgo Studio无法下载,出现报错

This hex file has data in SoftDevice region. Try programming using "Program SoftDevice", or erase all before programming.

nRF51822 入门必备教程(一篇搞定nRF51)

答:这是因为下载的程序地址有冲突,如果没用到蓝牙的程序不需要softdevice协议栈,可以erase all擦除flash后再下载,如果要用softdevice,那么应该是softdevice版本不对,微雪提供的程序例程要用s110_nrf51822_6.0.0_softdevice.hex版本。可以用高版本的功能丰富些,对应的应用程序地址要跟softdevice一致,如下图,softdevice是从0x00开始,接着是应用程序。nRF51822 入门必备教程(一篇搞定nRF51)

 问: KEIL无法下载程序?

答: 首先检查系统是否正常供电,之后尝试用nRFgo Studio的nRF51 Prgramming验证一下是否KEIL工程设置问题。

问: 例程编译不通过,报错nrf51.h(119): error:  #5: cannot open source input file "core_cm0.h"

修改包含的头文件路径为..\..\..\..\Include;..\..\..\..\Include\gcc即可   nRF51822 入门必备教程(一篇搞定nRF51)

问: nRFgo Studio可以下载,但KEIL下载报错: Insufficient RAM for Flash Algorithms !nRF51822 入门必备教程(一篇搞定nRF51)nRF51822 入门必备教程(一篇搞定nRF51)

答: 请确保正确安装SDK,Flash Dodnload设置如下,修改RAM for Algorithms要跟前面IRAM一样:

nRF51822 入门必备教程(一篇搞定nRF51)

nRF51822 入门必备教程(一篇搞定nRF51)

图6. Flash Dodnload设置

问: 阅读完该手册后,如何进一步学习?

答: 请仔细阅读chip PDF文件夹中相关文档,以及官方提供的参考手册:

示例程序里的BLE4.0\Documentation\index.html。

页面最后有官方提供的参考手册以及程序,可以用浏览器翻译浏览

示例程序里的BLE4.0\Documentation\index.html。

在线版:nRF51 SDK: Introduction

问:不同版本的SoftDevice有什么区别,如何获取?

答:常见的有以下两个版本,还会有一些特殊版本,可以实现各种你想要的蓝牙功能,所以推荐你下载最新的版本,比如nRF51系列,推荐使用SDK12.3.0(12.3.0已经是nRF51能支持的最高版本SDK了)

  • 比如S110,表示只支持从设备模式的nRF51 BLE协议栈 

  • 比如S130,表示既支持从设备模式又支持主设备模式的nRF51 BLE协议栈

不同sdk,SoftDevice版本获取链接:nRF5 SDK downloads - nordicsemi.com

nrf51_sdk常用API

IO口控制

#include "boards.h"

#include "nrf51_bitfields.h"

static __INLINE void nrf_gpio_cfg_output(uint32_t pin_number)  //首先初始化IO口

static __INLINE void nrf_gpio_pin_set(uint32_t pin_number)  //IO口开控制

static __INLINE void nrf_gpio_pin_clear(uint32_t pin_number)  //IO口关控制

static __INLINE void nrf_gpio_pin_toggle(uint32_t pin_number)  //IO口开关切换

static __INLINE void nrf_gpio_pin_write(uint32_t pin_number, uint32_t value)  //IO口开关

串口通讯

#include "simple_uart.h"   //加载例程nrf51822\Source\simple_uart.c的文件

simple_uart_config(RTS_PIN_NUMBER, TX_PIN_NUMBER, CTS_PIN_NUMBER, RX_PIN_NUMBER, HWFC);  //一句轻松初始化

void simple_uart_putstring(const uint8_t *str)  //字符串打印,相关API simple_uart.c文件查看

printf打印文章来源地址https://www.toymoban.com/news/detail-444001.html

//simple_uart.c文件加入此函数

#include "stdio.h"   //keil 设置里勾选MicroLIB 

int fputc(int ch, FILE *f)   

{

  simple_uart_put(ch);

  return (ch);

}

到了这里,关于nRF51822 入门必备教程(一篇搞定nRF51)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 爬虫技术——一篇全搞定!

    目录 目录: 1. 爬虫介绍 1.1 爬虫是什么 1.2 爬虫步骤 1.3 爬虫分类 1.3.1 通用爬虫 1.3.2 聚焦爬虫  ​编辑 1.4 一些常见的反爬手段  2. Urllib 2.1 urllib库的使用 2.2 请求对象的定制 2.3 编解码 2.3.1 get请求方式:urllib.parse.quote() 2.3.2 get请求方式:urllib.parse.urlencode() 2.3.3 post请求方式

    2023年04月09日
    浏览(27)
  • Postman工具使用一篇快速入门教程

    Postman 是一个用于构建和使用 API 的 API 平台,Postman 简化了 API 生命周期的每个步骤并简化了协作,可以更快地创建更好的 API。 版本说明: Postman官网下载链接:https://www.postman.com/,根据自己的操作系统选择。 找到下载到的目录直接双击.exe文件,会默认安装在C盘,安装完会

    2024年02月03日
    浏览(58)
  • web项目部署,一篇就搞定!

    web部署的方式有很多,根据开发方式不同,部署方式也不同。最通用是docker部署,这个想必大家都熟悉。我们今天说另外一种。 1、验证Jdk是否安装成功 2、验证Tomcat是否安装成功 3、验证Navicat 是否能连上数据库 4、创建数据库并导入数据库脚本(注意:它这里数据库名必须为

    2024年03月20日
    浏览(44)
  • 一篇搞定微信小程序

    view 普通视图区域 类似于html中的div,是一个块级元素 常用来实现页面的布局效果 基本使用 scroll-view 可滚动的视图区域 常用来实现滚动列表效果 基本使用 swiper和swiper-item 轮播图组件和轮播图item组件 基本使用 常用属性 text 文本组件 类似于html中的span标签,行内元素 基本使

    2024年04月25日
    浏览(34)
  • 一篇搞定Docker数据卷及其配置

    前言: 😄作者简介:小曾同学.com,小伙伴们也可以叫我小曾,一个致力于测试开发的博主⛽️ 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。😊 座右铭:不想当开发的测试,不是一个好测试✌️。 如果感觉博主的文章还不错的话,还请点赞、

    2023年04月08日
    浏览(31)
  • 安装IDEA运行Java保姆级教程(java小白入门必备)

    本文旨在为Java入门的同学介绍如何在自己电脑上运行Java程序: https://www.jetbrains.com/idea/download/#section=windows 运行Java程序的工具是 IDEA编译器 。 下载编译器:选择社区版本(Community),可免费试用。点击 Download 后等待三秒后即自动下载。 将IDEA安装包移至特定安装包,例如我

    2023年04月08日
    浏览(43)
  • 软路由保姆级入门教程 一篇看懂软路由

    前言 nbsp; nbsp; 玩张大妈也一年多了,软路由改装、刷机文章写了不少,很早就打算写篇软路由入门文章,但是一直没落实,原因有二: 圈子里大佬众多,基础的教程也很多。 基础教程可能需要解释很多基础概念,怕我个人理解有误,把小白带偏了。 nbsp; nbsp; 最近开了几波软

    2023年04月10日
    浏览(33)
  • 51单片机入门教程学习笔记

    基于江科大自化协B站教学视频《51单片机入门教程-2020版 程序全程纯手打 从零开始入门》 单片机,英文Micro Controller Unit,简称MCU 内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等一系列电脑的常用硬件功能 单片机的任务是信息采集(依靠传感器)、处理(依靠CPU)和

    2024年02月05日
    浏览(45)
  • 黑客入门教程(非常详细)从零基础入门到精通,看完这一篇就够了

    想要成为黑客,却苦于没有方向,不知道从何学起,下面这篇 黑客入门 教程可以帮你实现自己的黑客梦想,如果想学,可以继续看下去,文章有点长,希望你可以耐心看到最后 1、 Web安全相关概念(2周)  ·熟悉基本概念(SQL注入、上传、XSS、 、CSRF、一句话木马等)。 通过

    2024年02月03日
    浏览(45)
  • 自动化接口测试之Postman(一篇搞定)

    该篇文章针对已经掌握 Postman 基本用法的读者,即对接口相关概念有一定了解、已经会使用 Postman 进行模拟请求的操作。 当前环境: Window 7 - 64 Postman 版本(免费版):Chrome App v5.5.3 不同版本页面 UI 和部分功能位置会有点不同,不过影响不大。 我们先思考一下,如果需要达

    2024年02月03日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包