STMCU小助手
发布时间:2022-8-19 16:04
|
概述 本篇文章主要介绍如何使用STM32CubeMX对生成STM32WB工程,并通过手机APP与其连接。
6 i& }8 B* o( Y: V5 N8 @+ C 硬件准备, O. W( k+ _! l- Q 首先需要准备一个开发板,这里我准备的是NUCLEO-WB55RG 的开发板:& n, R" E) {# t y9 @; d/ S* x! s
2 t" K# o: [( w* C2 Z7 c4 s 选择芯片型号
配置时钟源 HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用外置的时钟源,故都选择Crystal/Ceramic Resonator选项,如下所示:4 t# ]9 u8 I: B% u- ?2 U
- f& d7 E: I' y6 Q+ O 配置时钟树 ' I3 C" S, o/ U A9 c: t
查看开启STM32_WPAN条件 可以看到,需要开启RF、RTC、RCC、IPCC、HSEM。5 W6 g8 D' A* K c7 N 9 ~& ~3 q1 V1 D+ Z; Y; R" x1 X: C
配置HSEM& ~) f0 n. C8 o2 t$ t, A' _ 硬件信号量(HSEM)模块用于管理多个进程之间共享的访问权限和资源同步。9 Q5 l3 |3 D: Q' ~ # k; x8 ~+ A" b U& z
* e, M' ~- ?3 b8 n. B# k, S
( x1 q1 F4 K# X 配置IPCC6 V) }. n' O ^& f% @ 通信控制器(IPCC)模块的主要用于cpu之间的信号消息交换。0 P. e) R+ E4 E2 a * j! b5 a" a$ z% \9 e
9 ~7 E6 ^0 `* ?* d 7 U! m, F& L5 w0 F 开启如下所示。 g" P* J; h% D' F5 M# W
9 `* E& M P/ ^ 配置RTC8 \: j! n3 G6 w) A
启动RF - b9 K$ r C0 N) Y$ [0 ?
7 N" [0 p, N/ _% @ 配置USART& y7 ?5 s0 b% T# [9 w; M: [4 S# ? 我们需要串口来打印数据,以方便我们查看信息。 查看原理图可以的是PB6和PB7与ST_Link链接在一起,且为串口打印端口。0 I; V3 T4 d& Y( U4 F+ r& C
开启DMA。& X" `9 n0 P% j% F
开启中断。# t& r! q" o7 o. W
5 q' G2 B/ X- Z) g 开启STM32_WPAN 无线个人区域网(wireless personal area network)。 由于我们使用的是蓝牙,故勾选BLE。
配置自定义模板。
: O0 A8 }& n% N 设置串口1跟踪。; m& n) Z3 |6 ~, h % a3 {, R: W4 a
关闭MX_USART1_UART_Init函数的生成。
! r2 @) f0 u# n& x$ P# I. I 启用串口1的tx的DMA。* C/ j7 v" Y, [6 O
' f% @! ]( v' Z1 Z# n8 N& R3 H5 p 启动串口1调试跟踪。5 r2 y2 M5 C+ r% Q) `# S' c
启用应用程序中的跟踪 。1 X5 O3 `7 J, C ) i& h" U. M! c- Q0 |+ C& c
9 f# r7 K: n8 ?8 n2 M 设置蓝牙名称,名称为MY_BLE_DEV。& A' l( K/ N p% X
设置服务器配置。$ M- I- b1 H$ ]5 { s. ^) O. k! L, M. `
- q7 l$ Y0 Z% ~. ~ 设置特征名称。 ) s% a* Y+ l, H6 C6 q
使能特征值读取。
5 Z( p3 C) G1 z9 y, I3 B7 O } V 关闭GATT事件的返回。( ^8 Q" B2 t$ Y! e' `
3 W7 c: t" J$ |3 \ 设置RTC和RF的时钟。 ) S# E j z% ?3 `6 k1 |
/ O- W- Z* ^/ G7 X2 n 设置工程信息3 T0 ]. K. ~1 ~: ? : Q1 r+ d+ ^# B% x/ k% f
5 m d8 ^4 `3 a6 M4 E7 y" J 工程文件设置
, r& l% r0 m; z. t. r Keil工程配置2 g9 i# K- T% n( ~" |- K 2 _5 d+ ]; t% N9 J: ?8 Q5 j
代码配置 在main.c中添加如下头文件。
UTIL_SEQ_Run(UTIL_SEQ_DEFAULT)函数应该在应用程序的while循环中,启动任务调度。1 l2 W. c0 K' n" V' U / P( r. D$ B) |- s" [
在app_entry.c中添加初始化 APPD_Init()。1 t- ?% q6 c( f% ?: D6 {2 o 4 }3 @/ E( m3 b
结果演示 下载完程序后,可以看到串口打印固件版本等信息。- p/ }3 K, s! s. P; s
+ @ A9 e: s) D h: q5 ^% i 打开ST BLE ToolBox软件(APP在群内有615061293),可以看到该蓝牙已经可以搜索到。
点击connect进行连接。0 Z# R' j* ]: U/ e4 g 连接之后可以看到串口打印了连接事件。3 n: }' i* v, v& Q f4 t + F+ g' h2 L& m5 S9 L! L& a
; E8 J2 ~, \: k9 C# x 同时手机也显示该蓝牙模块连接成功。$ d& `5 A, ?3 U; C- x$ s* V( C ! G* m# K3 D& |: r& R) {6 T7 v; V6 o
源码下载 ( p1 `5 e, ?* S! z / u% d: }$ I9 X6 ~9 i4 r# } |
低功耗蓝牙无线升级:STM32WB OTA 固件更新技术解析
STM32WB Zigbee 自定义集群开发实战:AN5491 应用笔记深度解读
吃透:STM32WB 上 Zigbee 睡眠终端设备开发攻略
STM32 无线 MCU HSE 频率与启动时间精确调谐实战指南
深度解读:STM32WB 2.4GHz 低成本 PCB 蛇形天线设计实战指南
经验分享 | STM32WB 双核无线 MCU 开发全流程实战指南
STM32WB 基于 Custom Template 实现 BLE 私有协议 实操开发指南
详解STM32单片机的堆栈
STM32单片机进行除零运算,为何程序不崩溃?
从照明到楼宇:STM32WBx5 BLE Mesh 落地指南
微信公众号
手机版