微雪 NRF51822 Eval Kit开箱检测部署PC端开发环境
下载手机端app
注意:蓝牙4.0和传统蓝牙的开发方法不同,首先需要手机支持蓝牙4.0,并且安装了相应的APP,才可以搜到蓝牙4.0的广播信号 与手机连接(演示蓝牙转串口程序)a) 安装CP2102驱动 b) 将BLE400的mini USB接口与PC机相连 c) 打开串口调试助手,选择相应的COM口,波特率为38400,8位数据位,1位停止位,点击打开串口 d) 发送字符Y或y,如回显Start...则表示蓝牙已经开始发送广播数据,此时可以看到BLE400的LED0亮。 注意:出厂程序的前一部分是模块自检,显示的信息可忽略。 e) 手机端开启蓝牙功能。 f) 打开nRFToolbox,并点击进入UART,单击CONNECT按钮,在列表中选中Nordic_UART,此时BLE400的LED0灭/LED1亮,表明手机与模块连接成功。 g) 按APP上的按钮,在串口上可以收到相应的字符。(APP上的按钮信息需要用户自己定义) h) 点击Show Log,在串口助手中,发送字符串abcdefghijklmnopqrs,在LOG列表中会打印相应的信息。 注意:每当蓝牙收到19个字符,在APP上才会回显数据。 程序说明安装SDKa) 安装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_example测试程序a) 开发板出厂时已预装程序,下载其他程序之前,需使用nRFgo Studio全部擦除程序。首先点击“nRF51 Programming”,之后点击“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开始闪烁。
注意: 这里可能会出现nrf51.h(119): error: #5: cannot open source input file "core_cm0.h"报错,解决办法参考后面的常见问题。 由于Jlink固件与nordic SDK配合的问题,部分KEIL无法正常下载。 此时,请使用nRFgo Studio左下的“nRF51 Programming”,之后点击“Program Application”选项框下载。
编译下载ble_app_hrs测试程序a) 下载S110 nRF51822 SoftDevice(蓝牙协议栈): https://download.csdn.net/download/qq648647/86510749 选择nRF51 Programming > Program SoftDevice> Browse(选择相应的蓝牙协议栈) > Program(等待蓝牙协议栈下载完毕)。(我们使用的协议栈文件s110_nrf51822_6.0.0_softdevice.hex,是通过解压\Software\s110_nrf51822_6.0.0.zip得到的。)
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测试程序”
常见问题问: nRFgo Studio无法下载,出现报错 This hex file has data in SoftDevice region. Try programming using "Program SoftDevice", or erase all before programming. 答:这是因为下载的程序地址有冲突,如果没用到蓝牙的程序不需要softdevice协议栈,可以erase all擦除flash后再下载,如果要用softdevice,那么应该是softdevice版本不对,微雪提供的程序例程要用s110_nrf51822_6.0.0_softdevice.hex版本。可以用高版本的功能丰富些,对应的应用程序地址要跟softdevice一致,如下图,softdevice是从0x00开始,接着是应用程序。 问: KEIL无法下载程序? 答: 首先检查系统是否正常供电,之后尝试用nRFgo Studio的nRF51 Prgramming验证一下是否KEIL工程设置问题。 问: 例程编译不通过,报错nrf51.h(119): error: #5: cannot open source input file "core_cm0.h" 修改包含的头文件路径为..\..\..\..\Include;..\..\..\..\Include\gcc即可 问: nRFgo Studio可以下载,但KEIL下载报错: Insufficient RAM for Flash Algorithms !
答: 请确保正确安装SDK,Flash Dodnload设置如下,修改RAM for Algorithms要跟前面IRAM一样:
问: 阅读完该手册后,如何进一步学习? 答: 请仔细阅读chip PDF文件夹中相关文档,以及官方提供的参考手册: 示例程序里的BLE4.0\Documentation\index.html。 页面最后有官方提供的参考手册以及程序,可以用浏览器翻译浏览 示例程序里的BLE4.0\Documentation\index.html。 在线版:https://developer./nRF5_SDK/nRF51_SDK_v5.x.x/doc/5.2.0/html/index.html 问:不同版本的SoftDevice有什么区别,如何获取? 答:常见的有以下两个版本,还会有一些特殊版本,可以实现各种你想要的蓝牙功能,所以推荐你下载最新的版本,比如nRF51系列,推荐使用SDK12.3.0(12.3.0已经是nRF51能支持的最高版本SDK了)
不同sdk,SoftDevice版本获取链接:https://www./Products/Development-software/nrf5-sdk/download#infotabs 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打印 //simple_uart.c文件加入此函数 #include "stdio.h" //keil 设置里勾选MicroLIB int fputc(int ch, FILE *f) { simple_uart_put(ch); return (ch); } 其他有价值的相关链接 Nordic NRF51822 从零开始系列(一)开发环境的搭建https://blog.csdn.net/Mr_Lyoko/article/details/79506707 Nordic nRF5 SDK和softdevice介绍https://www.cnblogs.com/iini/p/9095551.html beautifulzzzz 随笔分类 - 硬件_nRF51822https://www.cnblogs.com/zjutlitao/category/759832.html nRF51官方文档及手册https://infocenter./index.jsp?topic=/struct_nrf51/struct/nrf51.html nRF51官方SDK文档https://infocenter./index.jsp?topic=%2Fstruct_sdk%2Fstruct%2Fsdk_nrf5_latest.html nRF51822之BootLoaderhttps://blog.csdn.net/qinrenzhi/article/details/88786592 Arduino编译nRF51822,表示不推荐,反正我没搞成功,一直连不上jlink,直接下载编译后的hex也不能成功运行,如果有搞成的留言解答下。 用nRFgo studio 是可以烧写keil的hex文件的,正常运行。貌似需要nRF51822 aduino的BootLoader程序,用了下面几个BootLoader都不行,选择其他板子也试过。 https://github.com/RedBearLab/nRF51822-Arduino/tree/S130/bootloader github资源 nRF51822-Arduinohttps://github.com/sandeepmistry/arduino-BLEPeripheral https://github.com/RedBear/nRF5x/tree/develop/nRF51822/arduino/ arduino中文社区 nRF51822资源 https://www./thread-92886-1-1.html 带有 Arduino IDE 的 Nordic nRF52840 高级蓝牙 5 – 入门 |
|