Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ART-Pi
nimble_BLE协议栈
如何在 ART-Pi 的 bsp 工程中使用 NimBLE 蓝牙协议栈
5.00
发布于 2022-09-11 20:28:19 浏览:1174
订阅该版
[tocm] 本文主要介绍 NimBLE 软件包的在 ART-Pi bsp 工程下的使用 - 目前 NimBLE 支持 BLE Host 层,同时 bsp 工程下暂不支持使用 ART-Pi 板载的 AP6212 蓝牙芯片,所以需要外接蓝牙其他的蓝牙 Control 芯片,如下文中提及的 Nordic 系列芯片 - 如需要使用 ART-Pi 板载 AP6212 , 可以移步-> “如何在 ART-Pi studio 工程下使用 NimBLE 蓝牙协议栈” ## 配置使用 NimBLE 在 stm32h750-artpi 工程目录中打开 `env` 工具, 输入 `menuconfig` 进行配置 1、进入 RT-Thread online packages → IoT - internet of things 目录即可看到 NimBLE 软件包,勾选软件包 ![bsp-nimble-using.png](https://oss-club.rt-thread.org/uploads/20220820/6d28c8aefdd65d2ed6ef1a13bd3be7ec.png "bsp-nimble-using.png") 2、进入 Controller Configuration **关闭** NimBLE Controller 支持 ![bsp-nimble-controller.png](https://oss-club.rt-thread.org/uploads/20220820/ff6d23fa4d4340393aeab0da2410c698.png "bsp-nimble-controller.png") 在 RT-Thread 上 NimBLE 不需要运行 Controller ,使用 蓝牙 Control 芯片代替。 3、配置 NimBLE HCI 层支持,选择实际用于连接蓝牙 Control 芯片的串口,设置为 “uart1”。 ![bsp-nimble-hci-uart.png](https://oss-club.rt-thread.org/uploads/20220820/fe57bfcfdfebdc4e8e9962b4c4b272a7.png "bsp-nimble-hci-uart.png") 4、选择使用相应的蓝牙例程:在 **Bluetooth Samples** 中选择相应的例程。 ![bsp-nimble-samples.png](https://oss-club.rt-thread.org/uploads/20220820/1b4e9995759caa685f024b81d8269529.png "bsp-nimble-samples.png") 目前支持以下几个例程: - BLE peripheral heartrate sensor - BLE peripheral cycling speed and cadence sensor - BLE central role sample - BLE peripheral role sample - BLE beacon sample - BLE advertiser sample 5、选择最新版本代码: 在 **Version** 中选择 “latest”。 ![bsp-nimble-version.png](https://oss-club.rt-thread.org/uploads/20220820/06c94476287380ae967f91b4306f5fee.png "bsp-nimble-version.png") 配置完成后保存。 ## 配置串口 当前 stm32h750-artpi 工程 下默认支持的串口有 UART3 和 UART4,但这里需要使用扩展引脚中的 UART1 来外接 蓝牙 Control 芯片。 1、在 menuconfig 中打开 UART1 的使能 ![bsp-menuconfig-uart.png](https://oss-club.rt-thread.org/uploads/20220820/f7a0ee6011fbfa2c99fc05829c3d940d.png "bsp-menuconfig-uart.png") 保存退出。 2、打开 `stm32h750-artpi\board\CubeMX_Config\` 路径下的 STM32CubeMX 配置文件(此步骤需要安装STM32CubeMX软件)。 ![cubemx-open.png](https://oss-club.rt-thread.org/uploads/20220820/74eab786cc2d8c3635442b871f806802.png "cubemx-open.png") 3、按照下图配置好 USART1_TX - PA9 和 USART1_RX - PA10 ,注意两个引脚都是一样的步骤。 ![cubemx-uart-pin.png](https://oss-club.rt-thread.org/uploads/20220820/4e28c1efcf4f1b103808987f0fca9243.png.webp "cubemx-uart-pin.png") PA10 则配置成 USART1_RX。 3、配置完两个引脚后,按照下图顺序找到并使能 USART1 ![cubemx-uart-work.png](https://oss-club.rt-thread.org/uploads/20220820/6f817684eb116ae7bfcec4b07c26b00b.png.webp "cubemx-uart-work.png") 可以看到标号 4 处已经显示上一步骤设置的 TX 和 RX 引脚。 4、点击右上角的 "GENERATE CODE" 按钮,应该会出现 “时钟不对” 相关的警告,点击确定。等待代码生成完毕后,目录下应该会变成这样 ![cubemx-dir.png](https://oss-club.rt-thread.org/uploads/20220820/0a05f2854aca894e7c05b9c6fee73397.png "cubemx-dir.png") 5、由于当前版本工程默认使用 串口驱动v2 版本,因此还需要在 `stm32h750-artpi\board\board.h` 头文件相应位置添加 UART1的 BUFFER 大小配置 ```c #define BSP_UART1_RX_BUFSIZE 256 #define BSP_UART1_TX_BUFSIZE 256 ``` 感兴趣的伙伴可以看一下官方文档:[UART设备v2](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/uart/uart_v2/uart "UART设备v2") ## 编译运行 1、在 stm32h750-artpi 工程目录中打开 `env` 工具 2、使用 `pkgs --update` 命令更新 NimBLE 软件包 ```shell $ pkgs --update ``` 3、使用 `scons --target=mdk5` 命令生成对应的 keil 工程, 并双目录下的 **project.uvprojx** 文件打开 keil 工程。 4、编译 keil 工程 **注意:** 如果编译过程中遇到下图中类似问题: ![keil-error.png](https://oss-club.rt-thread.org/uploads/20220820/d4dda75d65bbd31b0d181d32067bb119.png "keil-error.png") 需要在 stm32h7xx_hal_msp.c 文件中把 `PeriphClkInitStruct` 变量相关的代码语句都删除,包括声明、定义语句等。 5、将程序下载到 ART-Pi 上 **注意:** 如果下载遇到问题,可以看一下是不是没有添加外部下载算法,参考 [ART-Pi 官方文档](https://github.com/RT-Thread-Studio/sdk-bsp-stm32h750-realthread-artpi/blob/master/documents/UM5005-RT-Thread%20ART-Pi%20%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E8%A7%A3%E7%AD%94.md "ART-Pi 官方文档") 6、串口连接蓝牙 Control 芯片。关于蓝牙控制器选择可以参考 (https://github.com/RT-Thread-packages/nimble/tree/master/docs/firmwares) (或 NimBLE 软件包目录下 /docs/firmwares/README.md)。 7、连接串口终端,可以使用 `hlep` 看到 BLE 相关例程命令,运行即可,可以看到相关日志输出 ![sample-run.png](https://oss-club.rt-thread.org/uploads/20220820/a19be6b2ff1f17173c3c9ad90456f3d6.png "sample-run.png") 使用 **nRF Connect** 手机 APP 即可成功观察到蓝牙设备,名称为 **blehr_sensor** : ![app.jpg](https://oss-club.rt-thread.org/uploads/20220820/ca581b4480f89c9c3872d1f57e7ad64e.jpg.webp "app.jpg") 点击连接后,在 CLIENT 下即可看到 Heart Rate 相关数据。 ![app-connect.jpg](https://oss-club.rt-thread.org/uploads/20220820/99b3a66f7b8c1787a020c4f366811e64.jpg.webp "app-connect.jpg")
1
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
Leno_yan
这家伙很懒,什么也没写!
文章
10
回答
0
被采纳
0
关注TA
发私信
相关文章
1
RT-Thread Studio 编译ART-Pi 的SDK报错 求助!-
2
ART-Pi 在 Studio 中使用TouchGFX Library 编译报错
3
RT-Thread Studio 更新错误
4
基于ART-Pi开发板创建的工程,RT-Thread Settings打不开
5
在 ART-Pi 平台使用 openocd 直接烧录到外部 spi flash?
6
ART-Pi工程用mdk5打开后提示文件找不到
7
ART-PI demo是否能够增加demo流程框图或者详细设计文档
8
ART-Pi 的ST_Link无法识别
9
请把ART-Pi仓库放到gitee上一份。
10
仅有ART-Pi开发包时,RTT Studio无法创建ART-Pi工程
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
线程
RT-Thread Nano
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
SFUD
msh
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1443
个答案
289
次被采纳
张世争
807
个答案
174
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部