xref: /nrf52832-nimble/README.md (revision 150812a83cab50279bd772ef6db1bfaf255f2c5b)
1*150812a8SEvalZero# NRF52832 Nimble BSP 使用说明
2*150812a8SEvalZero
3*150812a8SEvalZero## 简介
4*150812a8SEvalZero
5*150812a8SEvalZero该 BSP 基于 Nordic 公司的 nrf52832 MCU,提供 RT-Thread bluetooth 协议栈的相关功能。
6*150812a8SEvalZero
7*150812a8SEvalZero
8*150812a8SEvalZero## 外设支持
9*150812a8SEvalZero
10*150812a8SEvalZero本 BSP 目前对外设的支持情况如下:
11*150812a8SEvalZero
12*150812a8SEvalZero| **片内外设**      | **支持情况** | **备注**                              |
13*150812a8SEvalZero| :----------------- | :----------: | :------------------------------------- |
14*150812a8SEvalZero| OS_Tick        |     支持      |                                       |
15*150812a8SEvalZero| UART           |     TX-->6;RX-->8     |  |
16*150812a8SEvalZero## 使用说明
17*150812a8SEvalZero
18*150812a8SEvalZerobluetooth 协议栈当前是以软件包的形式发布,因此如果需使用 BLE 的相关功能,首先需要拉取该软件包。
19*150812a8SEvalZero
20*150812a8SEvalZero### 编译及烧写
21*150812a8SEvalZero
22*150812a8SEvalZero- 设置 RTT_ROOT 路径
23*150812a8SEvalZero
24*150812a8SEvalZero因为当前 BSP 尚未合并入 RT-Thread 仓库,所以编译之前需要手动设置 RTT_ROOT 的路径,即打开 ENV 工具,输入 ``set RTT_ROOT=D:\dev\rt_code\rt-thread``。
25*150812a8SEvalZero
26*150812a8SEvalZero- 拉取 BLE 软件包
27*150812a8SEvalZero
28*150812a8SEvalZero打开 ENV 工具,然后输入 ``pkgs --update``,会自动从 github 拉取 BLE 协议栈。
29*150812a8SEvalZero
30*150812a8SEvalZero- 编译工程
31*150812a8SEvalZero
32*150812a8SEvalZero成功拉取协议栈之后,需要重新生成 MDK 工程。仍然在 ENV 目录下,输入 ``scons --target=mdk5``,此时会重新生成新的 MDK5 工程。
33*150812a8SEvalZero打开该工程,点击 build 按钮,编译生成 hex 文件。
34*150812a8SEvalZero
35*150812a8SEvalZero- 烧写
36*150812a8SEvalZero
37*150812a8SEvalZero使用 JLINK 连接板子,选择对应的芯片型号,点击 Download 按钮进行烧写。
38*150812a8SEvalZero
39*150812a8SEvalZero### 运行结果
40*150812a8SEvalZero
41*150812a8SEvalZero烧写完成后,正确连接板载串口至终端软件,复位重新执行,打印如下信息,此时标志 RT-Thread 已经在正常工作,可输入其它 FINSH 命令查看系统状态信息,如 ``ps`` 、 ``free`` 等。
42*150812a8SEvalZero
43*150812a8SEvalZero```
44*150812a8SEvalZero \ | /
45*150812a8SEvalZero- RT -     Thread Operating System
46*150812a8SEvalZero / | \     4.0.0 build Jan 23 2019
47*150812a8SEvalZero 2006 - 2018 Copyright by rt-thread team
48*150812a8SEvalZerohello world
49*150812a8SEvalZeromsh />
50*150812a8SEvalZero```
51*150812a8SEvalZero
52*150812a8SEvalZero### BLE 的简单使用
53*150812a8SEvalZero
54*150812a8SEvalZero当前工程提供一个 Heart rate 示例。系统正常运行后,在 Finsh 命令行 输入 `` ble_hr ``,执行该 Demo。如下:
55*150812a8SEvalZero
56*150812a8SEvalZero```
57*150812a8SEvalZeromsh />ble_hr
58*150812a8SEvalZero[I/nimble] GAP procedure initiated: stop advertising.
59*150812a8SEvalZero[I/nimble] GAP procedure initiated: advertise; disc_mode=2 adv_channel_map=0 own_addr_type=0 adv_filter_policy=0 adv_itvl_min=0 adv_itvl_max=0
60*150812a8SEvalZeromsh />
61*150812a8SEvalZero```
62*150812a8SEvalZero
63*150812a8SEvalZero此时手机打开 `nRF Master Control Panel` APP,能够扫描到名为 `ble_sensor` 的设备,连接之后,模拟的 Heart rate 示例开始运行。现象如下:
64*150812a8SEvalZero
65*150812a8SEvalZero![heart_rate](docs/figures/heart_rate.png)
66*150812a8SEvalZero
67*150812a8SEvalZero## 注意事项
68*150812a8SEvalZero
69*150812a8SEvalZero- 该BSP UART默认使用 TX--->6;RX--->8 引脚,可根据板载设计自行修改;
70*150812a8SEvalZero- RT-Ththread bluetooth 协议栈移植自开源方案 Nimble,相关介绍及 API 说明可参考``http://mynewt.apache.org/latest/network/docs/index.html``。
71*150812a8SEvalZero
72*150812a8SEvalZero
73