一、搭建环境
1.1 安装Keil 5
官网下载:http://www2.keil.com/mdk5/
百度网盘:https://pan.baidu.com/s/1T_eF5NDYeq38bR0cqjiZkw 提取码:562z
1.2 下载SDK
官网下载:https://www.nordicsemi.com/Software-and-tools/Software/nRF5-SDK/Download#infotabs
百度网盘:https://pan.baidu.com/s/1YBe-Mp2qGf6xBMMm8rEhBw 提取码:97zh
1.3 安装Nordic Packet
注意:要与SDK版本对应
http://developer.nordicsemi.com/nRF5_SDK/pieces/nRF_DeviceFamilyPack/
官网下载:http://www.keil.com/dd2/Pack/#/third-party-download-dialog
选择 Nordic Semiconductor nRF ARM devices Device Family Pack with BSD
百度网盘:https://pan.baidu.com/s/1XHUFqTnaPEfpquUYjYBLHA 提取码:vgb2
Keil内下载:
1.4 安装ARM CMSIS内核4.5.0
百度网盘:https://pan.baidu.com/s/1V-magEmEUoGxVhCeT9hIcw 提取码:m5n7
1.5 安装协议栈软件nRFgo Studio
官网下载:https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRFgo-Studio/Download
百度网盘:https://pan.baidu.com/s/1GxBDyzCS1_R-wVh2zyA2vA 提取码:qlfj
二、SoftDevice
2.1 命名规则
以 Sxyz 为例,其中 S 表示 Software,各字母的含义如下所示。不同的协议栈的具体描述可见此处。
2.1.1 通用规则
x - 协议栈类型
- 1:BLE stack
- 2:ANT stack
- 3:BLE&ANT stack
y - BLE角色
- 1:peripheral role
- 2:central role
- 3:all roles(central/peripheral/advertiser/observer)
z - 系列芯片
- 0:nRF51 series
- 2:nRF52 series
- 3:misc series
例如 S113 代表的是低功耗 BLE 协议栈,从设备,针对 nRF52805, nRF52810, nRF52811, nRF52820, nRF52832, nRF52833 and nRF52840 系列的 SoC。
2.1.2 特定规则
x - 协议栈类型
同上
yz - 芯片型号
- 40:针对芯片52840
tips: S140是一个大而全的协议栈,包含蓝牙所有功能。
注意不同的softdevice所占用的ROM和RAM是不一样的,具体看其手册S112、S113、S122、S130、S132、S140、S212、S312、S332、S340…
2.2 目录框架
- components:Nordic 开发的各种 SDK,只包含头文件、源文件以及库文件,切勿修改!
- config:不同类型芯片的配置文件。
- documentation:SDK 和不同 softdeviceAPI 的参考文档。
- examples:根据不同传输协议/ BLE 角色/外设等应用场景所设计的例程。此目录很常用。
- external:第三方库或源码。
- external_tools:第三方工具。
- integration:集成旧版本SDK(≤SDK14)的驱动(又称legacy)。
- modules:新版本SDK(>SDK14)驱动nrfx,同时支持nRF5 SDK(用于nRF51/52芯片)以及nRF Connect SDK(支持nRF91/53芯片)。
二、编译
打开BLE从机串口传输示例工程 ble_app_uart
路径:SDK\nRF5_SDK_17.0.2_d674dde\examples\ble_peripheral\ble_app_uart\pca10100\s140\arm5_no_packs
点击按钮进行编译
注意:其他工程编译可能产生缺少micro_ecc_lib_nrf52.lib文件错误时,查看 解决方法:编译NRF52832工程时缺少micro_ecc_lib_nrf52.lib文件
三、烧录
3.1 Keil内烧录
- 先烧录 协议栈
- 再烧录 应用程序
注意:调试过程中可能出现的问题,因为用的是官方的 nRF52833 DK 开发板,需要更新 JLINK 版本
nRF-Command-Line-Tools_10_12_0_Installer.exe 提取码:7lub
3.2 nRFgo内烧录
- 打开 nRFgo Studio
-
如果是第一次烧录,先擦除(可跳过)
-
烧录协议栈
选择SDK版本对应的协议栈(一般随同SDK一起下载下来)
路径:nRF5_SDK_17.0.2_d674dde\components\softdevice\s140\hex
替换协议栈hex文件
4.烧录应用程序
路径:nRF5_SDK_17.0.2_d674dde\examples\ble_peripheral\ble_app_uart\pca10100\s140\arm5_no_packs\ _build
• 由 Leung 写于 2020 年 12 月 7 日
网友评论