你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于STM32WB55使用STM32CubeMX生成应用程序连接手机APP

[复制链接]
攻城狮Melo 发布时间:2023-4-11 18:16
概述
    本篇文章主要介绍如何使用STM32CubeMX对生成STM32WB工程,并通过手机APP与其连接。

: n. I. }7 T- ?# n1 [
微信图片_20230411181927.png
. K" h; b% |+ ~" j$ g
硬件准备. i3 K- S" g; O  d1 B6 z3 x* I
    首先需要准备一个开发板,这里我准备的是NUCLEO-WB55RG 的开发板:

6 Y: s1 _6 g3 Y
微信图片_20230411181611.png

5 m& W# C1 j' X& l选择芯片型号2 n9 f  |" ?) R, B+ `. l
微信图片_20230411181603.png , n8 u5 K3 R/ c8 W0 w+ F" V  i
配置时钟源% r- P) H% O5 _, g2 t! c
HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用外置的时钟源,故都选择Crystal/Ceramic Resonator选项,如下所示:
3 h! G8 b; ?2 o# q
: P% Y  f$ `& p- |* L* D
微信图片_20230411181559.png
4 T3 w# U# r" B3 v2 t' k6 w
配置时钟树* v+ G# f# W: B7 f. S9 A& U
. x9 z( ]: a4 n- v+ F: A% d
微信图片_20230411181555.png

7 y2 X. M$ H1 H  ?6 E4 h2 U/ o: `查看开启STM32_WPAN条件) t1 A: c$ R- y  ]1 V3 ~3 _* K
    可以看到,需要开启RF、RTC、RCC、IPCC、HSEM。
6 a4 O( I/ K5 k5 T5 p$ P
微信图片_20230411181550.png

/ X: M8 V( G# E配置HSEM
% v2 F# B' c7 L: D
    硬件信号量(HSEM)模块用于管理多个进程之间共享的访问权限和资源同步。  
% i9 [' t' w4 t- P$ v( Y3 t5 Q4 |
微信图片_20230411181546.png
" Q# R2 D- E6 Y" f; d( e; I! j+ Z
. `2 P) C0 f7 m; N
    开启HSEM如下。

" }- l+ h; |/ A
微信图片_20230411181532.png
2 G1 `0 ?; }% |! D; t4 c; P' x
配置IPCC
8 G# l9 p( V! i( m* F) y' A
    通信控制器(IPCC)模块的主要用于cpu之间的信号消息交换。
* M0 I# w; p) W# [- q- |0 K9 \
4 A- ^' r8 r% C# `, b0 {% Q+ I
微信图片_20230411181536.png

" u( P, f" V2 w' k% \9 v' ^
   
    开启如下所示。

/ N+ T  w0 j( D1 b, y3 ~7 i8 {
微信图片_20230411181542.png

5 P4 ^( R- T' n5 }- j3 M配置RCC
2 |/ N; C  N! Y5 f# Z
7 `4 e# G: N; Q5 d
222.png
% c' z- D) x# y2 u9 X3 \( I
启动RF
( {  l6 o& a- u" @2 u4 J2 \

- d8 C- \3 @4 G3 v0 C+ D
微信图片_20230411181456.png

5 ?1 l' Z- q5 R# y* `配置USART3 u9 J3 j9 `6 S1 L5 J
' L) n% x7 L3 N" z% s! s0 Q2 `% p
    我们需要串口来打印数据,以方便我们查看信息。
    查看原理图可以的是PB6和PB7与ST_Link链接在一起,且为串口打印端口。

: v4 y4 N/ m7 {; N. q
微信图片_20230411181451.png

6 A' K% B% m8 `4 N. ~$ T$ |, T
微信图片_20230411181447.png

, ]" i9 D6 T; S) p, h
    开启DMA。

% s3 Z( f8 x; w
333.png
1 y3 k6 x$ b$ j. v: ~$ E
    开启中断。

* ]9 _* h! e5 C3 I& S  T* `  z
微信图片_20230411181441.png
1 I1 w1 D" D# p2 N  Z
开启STM32_WPAN/ \/ v! M- q7 ?$ y7 z/ o
    由于我们使用的是蓝牙,故勾选BLE。
) i2 y+ D, c# P/ e5 y1 w
微信图片_20230411181437.png

4 H% P8 R4 b/ y
    配置自定义模板。

: u3 p# m9 m" g, `
微信图片_20230411181432.png
7 Q8 ^5 j3 b; j  w) b
    设置串口1跟踪。
/ `4 O, c) O, r9 M7 q- j7 F
微信图片_20230411181427.png

) H4 v. X& R/ o! `* l0 ^9 l' Q8 P
    关闭MX_USART1_UART_Init函数的生成。
4 m8 Q; p$ t+ [
微信图片_20230411181423.png

" V. z2 n$ u8 o/ ]& v5 B% M8 c" b9 H  P
    启用串口1的tx的DMA。

4 ]6 z3 z/ ^: n, S) Y" g* O) d7 n3 b
112.png

, e# k. d7 T/ `% ]$ G! x
    启动串口1调试跟踪。

7 I: F$ _4 }/ T+ o6 ]
微信图片_20230411181419.png

8 ?5 ^6 Z2 a! |, S3 J, A3 Z+ S
    启用应用程序中的跟踪  。

% K+ N( o0 }+ b% R6 @
微信图片_20230411181411.png

8 i5 ?5 p" \- O
    设置蓝牙名称,名称为MY_BLE_DEV。
( c! O4 g6 D2 Z+ w4 n/ G
微信图片_20230411181407.png
$ F- U% J. X0 g) z3 i- M
    设置服务器配置。
. d4 g5 ?: w; ^  F3 `1 `1 F
微信图片_20230411181403.png
( @% o/ {$ \; W" G- I/ l  R
    设置特征名称。

  I2 \+ `4 G  W8 F! i" H
微信图片_20230411181330.png

  v& \8 C5 ^& g/ m3 C+ |
    使能特征值读取。

1 R( I* d* H2 h' H; x8 j
微信图片_20230411181317.png
' T* ~8 H% _; U' F0 P( i
    关闭GATT事件的返回。
: N' B  v( P, Z: L* Z1 F7 b
微信图片_20230411181311.png
. X" x% T  l; S, d% ]% ~
设置RTC和RF的时钟。
1 G9 k; C& ~: y9 F
微信图片_20230411181305.png

1 b9 \' K/ n3 P* ?设置工程信息3 [9 x/ r) o# f* ~
/ P! V+ n: x: ~$ D7 D  y
微信图片_20230411181302.png
8 j5 A9 D# k) T, P
工程文件设置" v6 \# x% i4 j4 b2 I# J

5 ~5 P% n# @% S9 v( Q7 h  q
微信图片_20230411181233.png

* I" t% \9 A' X  U3 x7 FKeil工程配置7 R! R3 r  g6 u1 E& A
+ W, Q5 E2 j6 d- B7 g/ |( O/ H
微信图片_20230411181223.png 7 D3 w% S0 J6 O6 B
代码配置
+ @9 C% x( I; ^/ d" F  W- ?5 d
    在main.c中添加如下头文件。
  1. /* USER CODE BEGIN Includes */  J# S6 `9 H3 \  i" f
  2. #include "stm32_seq.h"
    + L7 a' b! X! h8 d
  3. /* USER CODE END Includes */
复制代码

6 C. G2 a) P% j
    UTIL_SEQ_Run(UTIL_SEQ_DEFAULT)函数应该在应用程序的while循环中,启动任务调度。
  1.   /* USER CODE BEGIN WHILE */; |+ z( J1 t0 o+ y
  2.   while (1)
    + X  X# {! w7 }, S9 l4 n
  3.   {! x" x) a9 G  X
  4.     /* USER CODE END WHILE */0 t/ J, R! l9 z3 F
  5.     MX_APPE_Process();6 n5 v; g: C' Q- e0 ~9 b1 n* ~
  6. ) R2 W0 T" v5 D6 U( g% w
  7.     /* USER CODE BEGIN 3 */$ b4 M9 v; s% K: L3 p5 g- E
  8.     UTIL_SEQ_Run(UTIL_SEQ_DEFAULT);8 F  n, U6 J3 w" y$ d1 Z, r5 L
  9.   }, K. Y( Z) M  W( P6 K
  10.   /* USER CODE END 3 */9 e# \! N4 P9 H+ u0 T. m5 I+ L
  11. }
复制代码

, s& k5 @9 g+ W& _0 V
    在app_entry.c中添加初始化 APPD_Init()。
  1. void MX_APPE_Init( void )$ c1 Q) |& S! t: O8 T) D% ]) u1 |
  2. {
    ! p1 u& m2 V2 D* U7 M- v5 t/ s
  3.   System_Init( );       /**< System initialization */1 G5 J) d* ?' T; E, N

  4. / M7 ~. C1 M' P, E
  5.   SystemPower_Config(); /**< Configure the system Power Mode */: ?; O% ]7 U1 s% A. m% O* w) o0 E

  6. ( l  A8 {6 _! ^, x! W5 Y
  7.   HW_TS_Init(hw_ts_InitMode_Full, &hrtc); /**< Initialize the TimerServer */, r& Y2 D) x; l9 ~
  8. ; u6 l* Q4 G! S6 ~' ?
  9. /* USER CODE BEGIN APPE_Init_1 */3 I3 y9 W$ \! g, Q* X! h$ [
  10.     APPD_Init();
    . ^) Z/ @1 K6 Z/ {
  11. /* USER CODE END APPE_Init_1 */
    3 R# [2 a; a$ i+ t7 u
  12.   appe_Tl_Init();  /* Initialize all transport layers */, }0 l2 N5 E3 K- _% E$ m* T, N

  13. 8 m+ q. @' G- V2 t
  14.   /**) c, p1 w+ _5 b! ~
  15.    * From now, the application is waiting for the ready event ( VS_HCI_C2_Ready )
    1 ?: b3 _6 Q9 V" y
  16.    * received on the system channel before starting the Stack' y7 j$ Y* ^3 c4 m1 t% v
  17.    * This system event is received with APPE_SysUserEvtRx()
    ; [8 z' V* P/ N5 O/ y: r( w( U
  18.    */, w6 O' y  s. a5 z; {
  19. /* USER CODE BEGIN APPE_Init_2 */5 b" w, Q7 q/ c) Z
  20. 4 W) u# K# k+ O0 W2 L3 Y
  21. /* USER CODE END APPE_Init_2 */
    # C) x7 L) t' ^
  22.    return;" a2 A0 m+ O: u2 e' k
  23. }
复制代码
: p  v% J, {6 R

* q! z% p7 `, R2 Z; c3 C结果演示$ E+ H# X; X# Q1 B0 A
    下载完程序后,可以看到串口打印固件版本等信息。
0 a# e2 p% D: j% e
微信图片_20230411181207.png

; N2 q" Z$ K% i: c" j; D2 b
    打开ST BLE ToolBox软件,可以看到该蓝牙已经可以搜索到。
* P- v# ]( z0 u+ p6 i) F# ^$ r8 {
微信图片_20230411181203.png

9 n9 W+ c3 y0 j! L# B* p% u; X
    点击connect进行连接。
    连接之后可以看到串口打印了连接事件。
6 r3 [( J6 l: B3 ]
微信图片_20230411181159.png

. d& g2 l- t4 [! G/ P
    同时手机也显示该蓝牙模块连接成功。
: Z/ ~$ t3 [$ ^$ t5 x) j) ]" n
微信图片_20230411181153.jpg
9 V6 H1 O% g) r+ `- m
转载自:记帖
如有侵权请联系删除
8 P5 [8 u. U) A4 w# |: a; j

  f% x% y9 ?- J
' T0 s6 M: k8 z) _8 g" z( h: w) X/ X, W: _* u

8 @7 M( w. m& ~8 x/ g
微信图片_20230411181212.png
微信图片_20230411181340.png
微信图片_20230411181507.png
收藏 评论0 发布时间:2023-4-11 18:16

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版