
概述 本篇文章主要介绍如何使用STM32CubeMX对生成STM32WB工程,并通过手机APP与其连接。 ![]() 硬件准备 首先需要准备一个开发板,这里我准备的是NUCLEO-WB55RG 的开发板: ![]() 选择芯片型号 ![]() 配置时钟源 HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用外置的时钟源,故都选择Crystal/Ceramic Resonator选项,如下所示: ![]() 配置时钟树 ![]() 查看开启STM32_WPAN条件 可以看到,需要开启RF、RTC、RCC、IPCC、HSEM。 ![]() 配置HSEM 硬件信号量(HSEM)模块用于管理多个进程之间共享的访问权限和资源同步。 ![]() ![]() 配置IPCC 通信控制器(IPCC)模块的主要用于cpu之间的信号消息交换。 ![]() 开启如下所示。 ![]() 配置RTC ![]() 启动RF ![]() 配置USART 我们需要串口来打印数据,以方便我们查看信息。 查看原理图可以的是PB6和PB7与ST_Link链接在一起,且为串口打印端口。 ![]() ![]() 开启DMA。 ![]() 开启中断。 ![]() 开启STM32_WPAN 无线个人区域网(wireless personal area network)。 由于我们使用的是蓝牙,故勾选BLE。 ![]() 配置自定义模板。 ![]() 设置串口1跟踪。 ![]() 关闭MX_USART1_UART_Init函数的生成。 ![]() 启用串口1的tx的DMA。 ![]() 启动串口1调试跟踪。 ![]() 启用应用程序中的跟踪 。 ![]() 设置蓝牙名称,名称为MY_BLE_DEV。 ![]() 设置服务器配置。 ![]() 设置特征名称。 ![]() 使能特征值读取。 ![]() 关闭GATT事件的返回。 ![]() 设置RTC和RF的时钟。 ![]() 设置工程信息 ![]() 工程文件设置 ![]() Keil工程配置 ![]() 代码配置 在main.c中添加如下头文件。
UTIL_SEQ_Run(UTIL_SEQ_DEFAULT)函数应该在应用程序的while循环中,启动任务调度。
在app_entry.c中添加初始化 APPD_Init()。
结果演示 下载完程序后,可以看到串口打印固件版本等信息。 ![]() 打开ST BLE ToolBox软件(APP在群内有615061293),可以看到该蓝牙已经可以搜索到。 ![]() 点击connect进行连接。 连接之后可以看到串口打印了连接事件。 ![]() 同时手机也显示该蓝牙模块连接成功。 ![]() 源码下载 |
【NUCLEO-WBA65RI评测】围绕BleApplicationContext_t的端侧蓝牙开发逻辑
STM32入门系列-学习STM32要掌握的内容
【NUCLEO-WBA65RI评测】Android Studio手机端蓝牙开发
【NUCLEO-WBA65RI评测】6.手机蓝牙控制电机运动
【NUCLEO-WBA65RI评测】Android端蓝牙OTA升级
【NUCLEO-WBA65RI评测】USB HID设备测试
【NUCLEO-WBA65RI评测】5.OTA后不能Debug的原因和解决方案
新手必看!STM32单片机应该怎么学?
【NUCLEO-WBA65RI评测】使用BLE-Serial-comm进行BLE调试,蓝牙BLE动态运行
【NUCLEO-WBA65RI评测】评测小结