xref: /nrf52832-nimble/README.md (revision 9f7d1a80360243b99dfd38f93cfbe6c0efa72b57)
1150812a8SEvalZero# NRF52832 Nimble BSP 使用说明
2150812a8SEvalZero
3150812a8SEvalZero## 简介
4150812a8SEvalZero
541de9012SEvalZero该 BSP 以 nrf52832 MCU 作为为平台,提供 NimBLE Bluetooth Stack 在 RT-Thread 上的基本功能。
6150812a8SEvalZero
741de9012SEvalZero所使用的协议栈为 NimBLE 在 RT-Thread上的移植版本,提供完整的 Host 及 Controller 协议栈支持,主要特性如下:
841de9012SEvalZero
941de9012SEvalZero- 支持 BLE5.0 标准
1041de9012SEvalZero- 2Msym / s PHY 吞吐量
1141de9012SEvalZero- 安全管理(SM),支持 LE Legacy Pairing,  LE Secure Connections, Transport Specific Key Distribution
1241de9012SEvalZero- 配置灵活,最多支持 32 个并发连接
1341de9012SEvalZero- 提供常用的 Profile 和 Service 支持
1441de9012SEvalZero- 清晰的 HCI 接口抽象
1541de9012SEvalZero- 支持 BLE Mesh(PB-GATT and PB-ADV provisioning, Relay support, GATT Proxy ....)
1641de9012SEvalZero- 最小 4.5 KB RAM,69KB Flash 的资源占用
1741de9012SEvalZero
1841de9012SEvalZero更多关于 NimBLE Stack 的介绍请参考 ``http://mynewt.apache.org/latest/network/docs/index.html``。
19150812a8SEvalZero
20150812a8SEvalZero## 外设支持
21150812a8SEvalZero
22150812a8SEvalZero本 BSP 目前对外设的支持情况如下:
23150812a8SEvalZero
24150812a8SEvalZero| **片内外设**      | **支持情况** | **备注**                              |
25150812a8SEvalZero| :----------------- | :----------: | :------------------------------------- |
26150812a8SEvalZero| OS_Tick        |     支持      |    |
27*9f7d1a80SEvalZero| GPIO           |     支持      |    |
28*9f7d1a80SEvalZero| UART           |     支持      | TX-->6;RX-->8 |
29*9f7d1a80SEvalZero
30150812a8SEvalZero## 使用说明
31150812a8SEvalZero
32*9f7d1a80SEvalZero当前工程已经默认导入RT-Thread 4.0源码和NimBLE软件包,且打开心率服务(HRS)的配置,无需再次配置,可直接使用MDK5 双击打开工程文件编译。
33150812a8SEvalZero
34150812a8SEvalZero### 编译及烧写
35150812a8SEvalZero
36150812a8SEvalZero- 编译工程
37150812a8SEvalZero
38*9f7d1a80SEvalZero直接双击 project.uvprojx 工程文件,打开该工程后,点击 build 按钮,编译生成 hex 文件。
39150812a8SEvalZero
40150812a8SEvalZero- 烧写
41150812a8SEvalZero
42150812a8SEvalZero使用 JLINK 连接板子,选择对应的芯片型号,点击 Download 按钮进行烧写。
43150812a8SEvalZero
44150812a8SEvalZero### 运行结果
45150812a8SEvalZero
46150812a8SEvalZero烧写完成后,正确连接板载串口至终端软件,复位重新执行,打印如下信息,此时标志 RT-Thread 已经在正常工作,可输入其它 FINSH 命令查看系统状态信息,如 ``ps`` 、 ``free`` 等。
47150812a8SEvalZero
48150812a8SEvalZero```
49150812a8SEvalZero \ | /
50150812a8SEvalZero- RT -     Thread Operating System
51150812a8SEvalZero / | \     4.0.0 build Jan 23 2019
52150812a8SEvalZero 2006 - 2018 Copyright by rt-thread team
53150812a8SEvalZerohello world
54150812a8SEvalZeromsh />
55150812a8SEvalZero```
56150812a8SEvalZero
57150812a8SEvalZero### BLE 的简单使用
58150812a8SEvalZero
59150812a8SEvalZero当前工程提供一个 Heart rate 示例。系统正常运行后,在 Finsh 命令行 输入 `` ble_hr ``,执行该 Demo。如下:
60150812a8SEvalZero
61150812a8SEvalZero```
62150812a8SEvalZeromsh />ble_hr
63150812a8SEvalZero[I/nimble] GAP procedure initiated: stop advertising.
64150812a8SEvalZero[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
65150812a8SEvalZeromsh />
66150812a8SEvalZero```
67150812a8SEvalZero
6841de9012SEvalZero此时手机打开 `nRF Master Control Panel` APP,能够扫描到名为 `rtt_blehr_sensor` 的设备,连接之后,模拟的 Heart rate 示例开始运行。现象如下:
69150812a8SEvalZero
70150812a8SEvalZero![heart_rate](docs/figures/heart_rate.png)
71150812a8SEvalZero
72150812a8SEvalZero## 注意事项
73150812a8SEvalZero
74150812a8SEvalZero- 该BSP UART默认使用 TX--->6;RX--->8 引脚,可根据板载设计自行修改;
7541de9012SEvalZero- 该协议栈移植自 Apache 开源方案 Nimble,相关介绍及 API 说明可参考``http://mynewt.apache.org/latest/network/docs/index.html``。
76150812a8SEvalZero
77150812a8SEvalZero
78