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

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

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

! t  I) t; \1 w5 H* }9 H: ]* l" C
微信图片_20230411181927.png

( E" j; @( M3 d3 U* G1 j0 [1 ^硬件准备9 o$ R, A! ^# U8 D# ]+ |
    首先需要准备一个开发板,这里我准备的是NUCLEO-WB55RG 的开发板:

) r1 \/ i) c2 B( g; y9 {
微信图片_20230411181611.png
  t1 H" Y' l3 r5 d& ]1 M/ Y) A: N+ P
选择芯片型号3 v( m  l5 i, B  e3 m
微信图片_20230411181603.png
6 [9 q! b5 E: |# z+ n/ s. B* m' {9 j配置时钟源
+ a% Z+ K" L6 S; Y& z& A% T  HHSE与LSE分别为外部高速时钟和低速时钟,在本文中使用外置的时钟源,故都选择Crystal/Ceramic Resonator选项,如下所示:
# M  q; J$ K/ w. i2 G" a, N1 _9 f7 Y, d7 t* A1 q
微信图片_20230411181559.png
9 H& T- N" i, p8 ?1 e; V, P
配置时钟树9 O) R& w1 F# K  i
! q$ H  N2 Y, B- I
微信图片_20230411181555.png
+ p# ^; {7 m7 ?4 p9 v- I( V& n
查看开启STM32_WPAN条件
5 O+ r9 X) D" `
    可以看到,需要开启RF、RTC、RCC、IPCC、HSEM。
2 f% _4 S2 j6 J1 D
微信图片_20230411181550.png

0 j# j* U$ l; {6 ]$ G7 W$ m配置HSEM5 l, e* l- Y$ v" ?
    硬件信号量(HSEM)模块用于管理多个进程之间共享的访问权限和资源同步。  

7 M( l8 ^+ u- ]$ @
微信图片_20230411181546.png
" K3 h4 l$ B, Z& X* C7 g
/ [1 ~( m9 o* R0 P) n
    开启HSEM如下。

) T* B4 {0 h/ g" C0 V6 M9 D
微信图片_20230411181532.png
. N8 ~5 B8 g6 n+ _) i1 D
配置IPCC
2 a/ J4 A; v0 o
    通信控制器(IPCC)模块的主要用于cpu之间的信号消息交换。6 D; G2 H, T. l  e2 N, l
% b( T) F/ ^8 B) @
微信图片_20230411181536.png
9 C) _2 }. i: w" K
   
    开启如下所示。

/ G! j# |! A' F2 _8 d
微信图片_20230411181542.png
7 W* n8 v& ^! Q; U3 U# h
配置RCC3 h" Y( L7 D3 j1 \& z0 s7 O2 k
% K, o7 e- J9 ?5 \
222.png

+ x. W# X) j+ K- P, a启动RF
2 |2 z, ^1 y+ ~  _9 a
: l8 G9 G. O3 f; y; G
微信图片_20230411181456.png

1 B' i3 n" C6 z* K8 U; I配置USART, `. O( o1 I3 D
7 y' Q, \. w- {# o
    我们需要串口来打印数据,以方便我们查看信息。
    查看原理图可以的是PB6和PB7与ST_Link链接在一起,且为串口打印端口。

* B1 L, h. i6 m2 h( w' E8 F
微信图片_20230411181451.png
; L$ a5 k! h" E
微信图片_20230411181447.png

+ o* _) O( X( j, }+ o: m
    开启DMA。
9 `' U8 {6 r2 x5 }$ X/ `; a1 u
333.png
+ D5 i. q' e) }2 z  k
    开启中断。
2 m1 \9 E7 _" G9 Q) k$ \0 P
微信图片_20230411181441.png

! w: _) h. z* u# T/ B
开启STM32_WPAN  K6 I' h/ T0 b  ?
    由于我们使用的是蓝牙,故勾选BLE。

0 r) N1 A7 b7 c7 C3 {
微信图片_20230411181437.png

% a- d' I2 T# ^
    配置自定义模板。
5 `' T; [! [9 g- W# i7 [" q
微信图片_20230411181432.png
) [  f! ]' K' B" W6 {- Y" O
    设置串口1跟踪。
% p' x' T4 Z$ v$ |' F
微信图片_20230411181427.png

! v! c& N! s& \7 M3 E) \% ^& g- v6 l
    关闭MX_USART1_UART_Init函数的生成。

" ^  |% N; p: P6 F
微信图片_20230411181423.png

) F- E$ ~* C9 I  J3 a0 u, q
    启用串口1的tx的DMA。
- F! z5 |- V3 O- H* A
112.png
; z7 e3 y9 d! X
    启动串口1调试跟踪。

' q: C" z6 D! V/ ^: _; E# N! U
微信图片_20230411181419.png
3 F4 T( N5 c0 `6 |/ s+ C: e
    启用应用程序中的跟踪  。

) [& P9 [1 n# [5 c! B
微信图片_20230411181411.png

7 U! U" K' o+ x7 _4 A( Y0 t
    设置蓝牙名称,名称为MY_BLE_DEV。
4 C6 l  Y3 G/ N! r
微信图片_20230411181407.png

9 E3 P( m" L; Z" S% E: @3 m* _
    设置服务器配置。

9 c% e+ S. I7 j7 p: _7 ]
微信图片_20230411181403.png
$ j4 ]4 X, I3 N: n; @0 |
    设置特征名称。
9 Q3 X$ z! `* j4 z9 i3 f# T
微信图片_20230411181330.png

/ I4 b, Z+ O: p/ [
    使能特征值读取。

) e& z1 ]- f$ g8 B
微信图片_20230411181317.png
) Z  \9 W% m* ~
    关闭GATT事件的返回。

* ]* m. L& y1 m' M- U- L
微信图片_20230411181311.png
( ]4 W2 y5 m% O6 ?- m
设置RTC和RF的时钟。

$ e8 x" s& x3 D! E
微信图片_20230411181305.png
! T# s, J4 f! W5 s* P* W6 C, S
设置工程信息
3 S3 z# S/ \7 o7 b4 ]- |7 Q
4 ]0 O( Z4 i) n1 t! `! G. T
微信图片_20230411181302.png
+ w8 }) P( _# w# B
工程文件设置% |9 n( K, [$ {; ~

# N, C$ B( ?2 v/ R& R1 w+ T, e  z
微信图片_20230411181233.png

# [3 T" z/ {( GKeil工程配置! F2 u* B7 [1 {+ p  V
  N9 F- {1 q( s) H' @- W
微信图片_20230411181223.png
! F$ j1 \" N: G4 H- }( c5 Q& \, }
代码配置& N# {3 W' H$ o! g, G: G
    在main.c中添加如下头文件。
  1. /* USER CODE BEGIN Includes */+ o0 Q, o: s1 f# W! w  Y. e1 m
  2. #include "stm32_seq.h"6 c* ]! n. t) f6 H5 ~9 w, }' d! l! u
  3. /* USER CODE END Includes */
复制代码

$ |, R: |5 m4 l; k
    UTIL_SEQ_Run(UTIL_SEQ_DEFAULT)函数应该在应用程序的while循环中,启动任务调度。
  1.   /* USER CODE BEGIN WHILE */8 r0 G3 s7 _! _. _
  2.   while (1)% S1 S6 j8 c/ ]$ X
  3.   {& j6 z& E/ Q+ C
  4.     /* USER CODE END WHILE */( ]2 m3 j* P6 Q6 B/ h8 y
  5.     MX_APPE_Process();
    $ ^1 {% U5 e( @* y

  6. + U# ~/ d8 v( W$ b% ~0 [7 {
  7.     /* USER CODE BEGIN 3 */6 v: Y0 @2 V$ b7 U9 U/ I: q
  8.     UTIL_SEQ_Run(UTIL_SEQ_DEFAULT);
    " ^) ~: ?9 k4 _8 E" N, z
  9.   }
    , d! E9 H1 E( D
  10.   /* USER CODE END 3 */, z+ S* p8 p6 L" F
  11. }
复制代码
1 u7 X$ m0 R" f! q3 Q- V1 T
    在app_entry.c中添加初始化 APPD_Init()。
  1. void MX_APPE_Init( void )! @; e3 `4 B7 ?0 v5 f' ~& B
  2. {- h9 n( E) S+ ?
  3.   System_Init( );       /**< System initialization */
    2 A! S4 k- _5 T( _
  4. ! ?& n$ u" f% K$ B: j: T- R
  5.   SystemPower_Config(); /**< Configure the system Power Mode */
    " y3 D: j! T) c3 ^4 D, o

  6. ' f  b/ @; |! o* g
  7.   HW_TS_Init(hw_ts_InitMode_Full, &hrtc); /**< Initialize the TimerServer */
    3 D3 v7 Q8 E) \1 E
  8. - x2 S- j4 d9 l; r8 ~. C- N
  9. /* USER CODE BEGIN APPE_Init_1 */
    ( o# G& Q" H# x# Z
  10.     APPD_Init();
    ( c% v* n8 T2 T1 v- y
  11. /* USER CODE END APPE_Init_1 */
    & V9 \" M+ E4 n+ @0 j
  12.   appe_Tl_Init();  /* Initialize all transport layers */
    - p* L2 X: m2 W% R& |2 D# z$ U8 i

  13. , K) v- _6 ~* K) C9 q" L
  14.   /**1 L/ C1 b/ T3 g- S& y
  15.    * From now, the application is waiting for the ready event ( VS_HCI_C2_Ready )# N0 m) R5 G0 t5 {2 t/ h
  16.    * received on the system channel before starting the Stack$ P' l$ c4 q( y' K& v. R: O; P
  17.    * This system event is received with APPE_SysUserEvtRx()
    0 e' g6 b  {5 A' M/ P. g6 I( ^* v
  18.    */; F% [: e8 X: \5 b: e/ o  L
  19. /* USER CODE BEGIN APPE_Init_2 */& p/ Q. V7 @4 u9 K0 q1 R
  20. 8 p4 |. m; H3 j3 h
  21. /* USER CODE END APPE_Init_2 */
    ' j  U5 @' B% u# c% n6 F8 T% b2 S
  22.    return;' N+ q( c: Z& q5 e
  23. }
复制代码
3 X% `" g/ L! F
' m+ b  X/ @1 x4 ^+ t: f
结果演示
& M+ f. O- v$ \* V
    下载完程序后,可以看到串口打印固件版本等信息。
; G' z- {7 r( M
微信图片_20230411181207.png
2 g* {+ v4 K+ _% ]0 F- b8 X9 c
    打开ST BLE ToolBox软件,可以看到该蓝牙已经可以搜索到。

+ _6 s7 a" c1 Q/ l
微信图片_20230411181203.png
! k" ]- a0 A+ H0 Q/ d% R
    点击connect进行连接。
    连接之后可以看到串口打印了连接事件。
) x5 H3 n$ {2 t
微信图片_20230411181159.png

- b% G: P$ U  q8 B+ P4 Z# Q  |
    同时手机也显示该蓝牙模块连接成功。

. w3 u4 r" ~5 X' }" _8 w, d* h" ~
微信图片_20230411181153.jpg
4 k- X& O, |8 j" `  b* B* X# w
转载自:记帖
如有侵权请联系删除
/ p) v! I6 i' a. ?! B" b' C; ?

- }, d9 b" J9 r; w' T
2 z4 T; F. T7 p" n" k, L
, t. V/ a; r0 B' ]" |: g9 ]$ u2 {& m" C1 z
微信图片_20230411181212.png
微信图片_20230411181340.png
微信图片_20230411181507.png
赞 收藏 评论0 发布时间:2023-4-11 18:16

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版