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

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

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

8 h5 @0 T- C( r6 o( z
微信图片_20230411181927.png
4 Z/ _: t0 ]! I+ j! j# Q
硬件准备% N$ Y. Z, t( v; b; C* }
    首先需要准备一个开发板,这里我准备的是NUCLEO-WB55RG 的开发板:
( L2 E; B# I/ B5 l
微信图片_20230411181611.png

$ U; U: K# M0 A$ F选择芯片型号
& k  O. g- {, ` 微信图片_20230411181603.png
$ T0 l5 _3 O  r& ?( {4 ]0 l配置时钟源& g0 ?, p. g0 h4 p) W( X6 t, E
HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用外置的时钟源,故都选择Crystal/Ceramic Resonator选项,如下所示:' N4 z; f* V' }' E0 D) Q" \
; ]1 R3 M8 |2 Y1 D( x
微信图片_20230411181559.png
9 i5 x: x' Y4 `+ F9 Q
配置时钟树8 p" N4 }/ H' J9 I! n

9 J' f( m) W, P) {9 L: ~! |* y
微信图片_20230411181555.png
; V9 D4 V' ~, _2 t8 j" F$ ?2 V
查看开启STM32_WPAN条件
- d: \( O' }# o
    可以看到,需要开启RF、RTC、RCC、IPCC、HSEM。
  M7 k, p9 G6 v% S& o
微信图片_20230411181550.png
# y. B9 r( h) d' I% ?6 f8 O% @8 \' _/ p
配置HSEM4 b- Y( b0 Z1 F
    硬件信号量(HSEM)模块用于管理多个进程之间共享的访问权限和资源同步。  

. E' w. {3 L! Y  z: M
微信图片_20230411181546.png

; N! z( Q* [1 q$ w
) D* U/ c* X) o( J9 ~8 c8 J
    开启HSEM如下。

- h1 o1 T+ C# H+ |' W% Q
微信图片_20230411181532.png
# @0 \+ @% y  H+ w0 A
配置IPCC6 s4 B/ J4 J, u- R4 n9 J" w( x+ e$ q$ o
    通信控制器(IPCC)模块的主要用于cpu之间的信号消息交换。* j9 Q% b# _' d$ I4 h; X$ y

8 W2 p+ Z0 D  ^, b5 J, s$ ]9 I- A
微信图片_20230411181536.png
/ e1 r+ N+ ^9 z5 t* u
   
    开启如下所示。

: V/ }) }# Q7 P/ ]: F4 L2 T
微信图片_20230411181542.png
* l" W3 H9 Y( y4 b7 h3 b
配置RCC' F# B6 d- a4 B: d5 Q; c. N

3 u; u0 S: n- \
222.png

; a, f& p( f* e6 k, _启动RF' ]' B6 x  u9 M2 ~

* z8 G8 `% ]4 D. i6 l
微信图片_20230411181456.png

, H4 d* i4 w: k  l( C2 l# G: i配置USART
8 X+ o% g! M! N* x

( ^$ f/ B+ o" @' ?- @
    我们需要串口来打印数据,以方便我们查看信息。
    查看原理图可以的是PB6和PB7与ST_Link链接在一起,且为串口打印端口。

: D8 P) h$ x% ^# M; X; m) q% g- [8 o
微信图片_20230411181451.png
& p# F; b% }  o3 I! _
微信图片_20230411181447.png

" c0 J7 P1 s3 ?. A! l) X, w$ B3 C# J
    开启DMA。

) r8 A# x2 w0 B8 p7 u- ?! Q
333.png
( o8 D* x7 u! L% P% K) W- ?( G
    开启中断。

1 ]# Z5 u# c& I# c5 `3 i+ Y( N  Z1 }
微信图片_20230411181441.png
% \: W& _, Z8 K. E1 g9 `
开启STM32_WPAN0 h1 i( W5 R# A3 G0 z
    由于我们使用的是蓝牙,故勾选BLE。
5 ^- J1 Z; C; m6 X3 f6 d
微信图片_20230411181437.png

4 o4 [) v- R( o2 b+ H
    配置自定义模板。

* f( x% m+ @3 g. _1 X
微信图片_20230411181432.png

# A8 `: C' p( E6 E& m3 M6 M% Z
    设置串口1跟踪。
3 A: l1 ~* `* d- g1 D- b
微信图片_20230411181427.png
1 Z4 l# j& A8 a4 |
    关闭MX_USART1_UART_Init函数的生成。
  f2 q/ ]: d6 ^) t0 \
微信图片_20230411181423.png
: q8 J, b/ J3 O! }" w- B
    启用串口1的tx的DMA。

- H0 ?- b( S9 l1 q! f
112.png
- Z9 m! `5 Y2 K* c7 W
    启动串口1调试跟踪。

) t. h. V2 t7 ^& e% P9 p+ L, ~
微信图片_20230411181419.png

6 f' W# Q$ k. R7 E, J5 b
    启用应用程序中的跟踪  。
0 I- b, }8 {4 V  t  ~. G3 W5 P* t
微信图片_20230411181411.png

& v! u. }3 V: b1 h5 m
    设置蓝牙名称,名称为MY_BLE_DEV。
, U" C0 N3 d& l" y4 j
微信图片_20230411181407.png
& t5 A4 ^, {- w- ^. Y  f. |2 s9 Z
    设置服务器配置。

1 S1 Q0 i% w4 b" Z7 S
微信图片_20230411181403.png

$ a: J$ v( |, |; Z
    设置特征名称。

: _4 c4 O+ \7 ?: ?
微信图片_20230411181330.png

0 ~$ l" l0 W2 s
    使能特征值读取。
4 i/ q% H' P( k' D: o4 C+ c
微信图片_20230411181317.png

# N7 N2 H& `* a( y6 R. y
    关闭GATT事件的返回。

  |* R2 D" v- a. \' ^- W; D5 T, G
微信图片_20230411181311.png

, s  @7 z7 s. _# j1 i
设置RTC和RF的时钟。

, X9 k: c0 k9 T4 c5 A' d. \
微信图片_20230411181305.png

& e. X/ q# `# U% ?- o: {设置工程信息
: O5 P" G7 e0 n! T5 a

7 L* F+ C; A8 i- f+ q1 h
微信图片_20230411181302.png
* ]5 `8 J1 o' A& c& U( r
工程文件设置
- \. u2 c6 a( O$ J& G0 K6 F) ^: o3 F

+ ?3 N6 q0 g0 m4 L6 H1 P% L
微信图片_20230411181233.png
1 a' @2 |  D! l) F! y# i6 C
Keil工程配置/ o& G( c, e9 q. I8 Y/ L3 F
) P; D- ?' Q+ G7 p
微信图片_20230411181223.png
% U0 E4 p1 K' K% `
代码配置
+ V4 n% ^5 |' W+ \; H
    在main.c中添加如下头文件。
  1. /* USER CODE BEGIN Includes */
    2 n3 W/ P6 @% ]! {
  2. #include "stm32_seq.h"
    + c2 C$ l+ i/ h
  3. /* USER CODE END Includes */
复制代码
9 P$ m8 k- l+ }2 O+ m+ a- h
    UTIL_SEQ_Run(UTIL_SEQ_DEFAULT)函数应该在应用程序的while循环中,启动任务调度。
  1.   /* USER CODE BEGIN WHILE */( k- k9 N8 o' k% X9 W8 @7 b" f7 C! I
  2.   while (1)
    6 x! Y% B* w8 H# b
  3.   {
    : `# C6 j0 X  R$ n
  4.     /* USER CODE END WHILE */
    3 K% J4 J; @4 T  B! C2 `
  5.     MX_APPE_Process();" Y$ R- i* b' l5 c
  6. / Y9 f4 `: i% h
  7.     /* USER CODE BEGIN 3 */
    " \$ r9 I: B* _. T. n
  8.     UTIL_SEQ_Run(UTIL_SEQ_DEFAULT);
    # ]/ F3 k7 x  l8 k. B
  9.   }
    - z; [% k$ l- I- h% c  Q" T  q
  10.   /* USER CODE END 3 */
    . w# @" L% \, y( L3 f# C3 }
  11. }
复制代码

" ?+ ^, p! _; v, L
    在app_entry.c中添加初始化 APPD_Init()。
  1. void MX_APPE_Init( void )" M; Q+ H. o; X+ |
  2. {. w. L- i" w: `$ @- a1 c; F- H
  3.   System_Init( );       /**< System initialization */
    6 d* {1 S; k& {

  4. 7 j# |6 f- j, y1 h3 G
  5.   SystemPower_Config(); /**< Configure the system Power Mode */3 r& j4 M7 j/ N6 f% g# S9 {7 X0 |0 X* J
  6. ; v; s  c5 C& a! t. u+ y2 A) W
  7.   HW_TS_Init(hw_ts_InitMode_Full, &hrtc); /**< Initialize the TimerServer */
    8 K1 |3 c: _; n( G% Z

  8. 5 b" s) H2 S4 T8 a- X) M" h0 o7 e
  9. /* USER CODE BEGIN APPE_Init_1 */8 r5 I. k5 [/ c7 C) b
  10.     APPD_Init();
    0 ~! `! Y2 `" U
  11. /* USER CODE END APPE_Init_1 */
    3 N+ O5 r: |# |; l7 w4 V
  12.   appe_Tl_Init();  /* Initialize all transport layers */
    6 \7 Q2 ^; o5 U4 q- I

  13. 9 @" N( l: o' |* N- |
  14.   /**
    4 e) E& H( l! K0 P9 S/ o9 a
  15.    * From now, the application is waiting for the ready event ( VS_HCI_C2_Ready )- v& t# ~9 [  l" K. I6 k# O6 R
  16.    * received on the system channel before starting the Stack5 @$ d6 f3 V2 `# j$ G- ]! b
  17.    * This system event is received with APPE_SysUserEvtRx(): j  O  B5 O3 d
  18.    */
    * h% H, }+ y* e. S" q
  19. /* USER CODE BEGIN APPE_Init_2 */9 e# t9 e! n7 ?8 a: n/ E% |: k! w

  20. 4 Z: I1 k8 \6 ^3 O; z! p
  21. /* USER CODE END APPE_Init_2 */
    ! v+ c; _  q9 h" B
  22.    return;
    . {9 Z- B6 |* I9 w
  23. }
复制代码
+ T% Z/ u( Y& x, y3 d
+ n2 M+ y/ k: J: j8 Z1 r
结果演示
/ S! O' v# a7 x
    下载完程序后,可以看到串口打印固件版本等信息。

1 @+ U$ O. X1 E
微信图片_20230411181207.png

4 p. A* i' ]; U9 H. H5 J8 S( s
    打开ST BLE ToolBox软件,可以看到该蓝牙已经可以搜索到。
. A9 p3 z, A. U+ b. e) E
微信图片_20230411181203.png

4 u# G4 f) t% ?' r7 ]& W1 ?
    点击connect进行连接。
    连接之后可以看到串口打印了连接事件。
; O1 H4 ]2 x/ f
微信图片_20230411181159.png
: ]- R/ L4 p+ [1 ]) P
    同时手机也显示该蓝牙模块连接成功。

4 }9 u. ~+ I- W3 c8 _7 L
微信图片_20230411181153.jpg
7 q  ?, j6 J) x8 e( D
转载自:记帖
如有侵权请联系删除

) [4 _* F( v% E( S6 c* O! r% }" I7 I3 N$ c  }0 Q
$ r- h6 q8 K% V* S
1 p. ?: F6 x* L7 b8 [$ d

4 n# d3 m% B& Y9 A. K
微信图片_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 手机版