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

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

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

8 w4 Q; v, r; w9 d) Z! J! U, c
微信图片_20230411181927.png
9 i) S8 t  R, l9 X
硬件准备
  e+ ]. J! ?- n4 _2 s5 N; A
    首先需要准备一个开发板,这里我准备的是NUCLEO-WB55RG 的开发板:
* q3 x6 s  t1 J; s; W
微信图片_20230411181611.png
# [. R0 F9 c/ ?9 J: A9 R2 z
选择芯片型号
$ Y( q0 q# Z% h1 Q# F" I 微信图片_20230411181603.png
& G* |- b5 x4 L0 U+ e7 S配置时钟源) U! w7 Y, e, D# o: H! ]- {! J5 @
HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用外置的时钟源,故都选择Crystal/Ceramic Resonator选项,如下所示:( v( X; }" R% I  w! w
% G% z* }7 T8 P& s# e: ~$ p
微信图片_20230411181559.png

9 y, n9 [/ T' P配置时钟树
( ]. H; \3 n* i, Y7 [% }
, }4 Q5 R' j6 ?; z& b
微信图片_20230411181555.png
0 N1 @3 Z( c- b, {
查看开启STM32_WPAN条件
* `) y3 z) ^! u9 Z1 t
    可以看到,需要开启RF、RTC、RCC、IPCC、HSEM。
3 X" S% {  o: G! ?: e9 r& |
微信图片_20230411181550.png

! ]2 G! l# |! _配置HSEM
3 N( d2 H* m) z% o3 e2 p# I* ~
    硬件信号量(HSEM)模块用于管理多个进程之间共享的访问权限和资源同步。  

3 A( I3 g& d9 G' l6 j3 e4 ]
微信图片_20230411181546.png

9 D  M1 ?, F% _, q6 O2 e& v3 F( ]
, a4 @/ |, l2 \9 u- [4 B& X
    开启HSEM如下。

% ^. y1 d. P0 {, A
微信图片_20230411181532.png

% Q& A" O9 n6 i8 j7 u% i配置IPCC7 y+ F) v/ B, G: f) g2 ~
    通信控制器(IPCC)模块的主要用于cpu之间的信号消息交换。1 b. h/ ?$ W6 j! O8 y- ^0 u

  I/ ^" i6 x7 W7 o- q2 n- I+ ^
微信图片_20230411181536.png
# s5 b# Z: ~1 O3 y& r
   
    开启如下所示。

/ z& x# O/ K8 P4 c
微信图片_20230411181542.png

( i& r! D$ O% `8 E: o: E配置RCC
2 A* b, u, }5 U1 ~8 E* j* A

4 i% v6 E4 e( M% t* q
222.png
2 @' }9 Y; X1 p
启动RF
. z2 S' K. [; v& |6 P

, i1 R$ p: j) ~) U
微信图片_20230411181456.png
4 H& W, `& W% }( o+ I% s8 ~
配置USART
6 ?" Z/ y/ {8 H1 s) H' h" r" e

2 j- E4 b2 H- K1 h# R/ ~7 n1 ?
    我们需要串口来打印数据,以方便我们查看信息。
    查看原理图可以的是PB6和PB7与ST_Link链接在一起,且为串口打印端口。

$ D; Y4 [" ~$ D9 ~' q  [
微信图片_20230411181451.png

8 A  ^. Y% a! A% Z- m+ `: @; M- _% ~
微信图片_20230411181447.png
4 S2 v+ V5 M9 e- O
    开启DMA。
. v. T: r- t& V! {$ Z
333.png
- n2 @9 C# j8 |7 K* [) z
    开启中断。
$ W3 @, m4 b5 X' ~+ j. Z( r- e' \
微信图片_20230411181441.png

1 ]  o8 @4 K% k. \9 \) O/ ^
开启STM32_WPAN* n4 c% L1 A: b9 q7 v) ?
    由于我们使用的是蓝牙,故勾选BLE。

" {, X' T6 U4 m) R* S- M1 G
微信图片_20230411181437.png

4 `  `! U$ t! o* D& u" i
    配置自定义模板。

! A$ S. a9 i$ [/ Y; v
微信图片_20230411181432.png

' I1 i" ?! L8 T
    设置串口1跟踪。
" _7 H- ]  s  p$ i, u) o# m
微信图片_20230411181427.png
3 G# F+ Q: H2 }4 b! g' i% ?% F
    关闭MX_USART1_UART_Init函数的生成。

3 z" N, Z% E' q  {
微信图片_20230411181423.png
8 h, S1 Q5 s3 j; Z7 g# y4 C. r
    启用串口1的tx的DMA。

4 J9 r7 i" B7 a6 i1 s0 Z
112.png
1 x$ X% Q( s% ?7 G+ Y3 b: t" {% _
    启动串口1调试跟踪。
: Y$ B. x; n- f
微信图片_20230411181419.png
% a0 j4 `7 e: T( O' w
    启用应用程序中的跟踪  。

. I2 x$ x3 y" u5 B( N1 K
微信图片_20230411181411.png

0 P3 k. M# M7 s4 v" s
    设置蓝牙名称,名称为MY_BLE_DEV。

' [; ^" ~$ ]5 Q
微信图片_20230411181407.png
# B( F  J2 p" l5 d3 d
    设置服务器配置。

  x# C$ Z2 R& T: s4 e/ x! v
微信图片_20230411181403.png

7 C& K9 Z. P2 f" I0 o4 ~1 T
    设置特征名称。

$ t( M" a4 o" r
微信图片_20230411181330.png
8 a# m0 a$ W3 b8 ]1 L1 T
    使能特征值读取。
4 n& K2 F, n6 C0 n1 H5 `9 g: p/ C& T, c& S
微信图片_20230411181317.png
' N" K; Q2 s* Y" s6 G
    关闭GATT事件的返回。

* Q0 I- W6 W  B1 A1 g
微信图片_20230411181311.png

9 Z: g3 \" _7 d. u+ V
设置RTC和RF的时钟。

5 `  q1 @8 j& Q8 ~2 ]; l! c/ h
微信图片_20230411181305.png
$ g* c1 p* Z7 q) t' z
设置工程信息( z( s7 x7 C9 e4 D) P4 L

- ~3 i: w# H* M+ g% b
微信图片_20230411181302.png

0 {% r. I0 K, J工程文件设置
" M, \) E# I, |

! h2 n* A2 L6 O1 K5 i8 M. C
微信图片_20230411181233.png
- F7 R2 V) L' `! R0 X
Keil工程配置, x* ^% c. \- W+ T* K( A( e9 o6 S

  k3 W6 ^0 W" G; v, A: q$ L! y' i! _: N 微信图片_20230411181223.png ! ^1 d1 e  h3 i" V, D; m$ \
代码配置! L5 E/ x( V- g+ g& X( l! G
    在main.c中添加如下头文件。
  1. /* USER CODE BEGIN Includes */
    $ }. T% h5 m/ ^3 R
  2. #include "stm32_seq.h"" n3 W2 u  k/ J& U
  3. /* USER CODE END Includes */
复制代码
* o* L0 R" K* N& W5 X( L
    UTIL_SEQ_Run(UTIL_SEQ_DEFAULT)函数应该在应用程序的while循环中,启动任务调度。
  1.   /* USER CODE BEGIN WHILE */" p, E8 R( ^+ Z
  2.   while (1)+ e# _6 A' o& P8 r; t
  3.   {
    6 `9 p6 V% i# U% P
  4.     /* USER CODE END WHILE */
    6 `, U! \  X: @) K% g
  5.     MX_APPE_Process();" k4 P& \+ P% e  \, K: c7 K0 K
  6. & m: a! w8 y: w3 F3 Y; Y3 k
  7.     /* USER CODE BEGIN 3 */& G0 t. I/ i9 [+ d
  8.     UTIL_SEQ_Run(UTIL_SEQ_DEFAULT);. C5 I3 v1 `0 n
  9.   }
    1 l7 ]" I6 L, S8 ^4 x: ?. m
  10.   /* USER CODE END 3 */+ l: N4 T4 L8 Z9 f/ v
  11. }
复制代码

9 S& u' W6 Q# B) ?' l
    在app_entry.c中添加初始化 APPD_Init()。
  1. void MX_APPE_Init( void )
    & b1 t9 A) z1 s, z
  2. {
    1 Y# F& r) y- H1 O
  3.   System_Init( );       /**< System initialization */
    2 `& Q, p4 m: Q
  4. 4 w1 i5 w& e- Y, R: t2 A, H
  5.   SystemPower_Config(); /**< Configure the system Power Mode */, J4 _) v9 |0 {, Q% o

  6. 1 _. m' {+ W: ?. L( T' _, ~- r
  7.   HW_TS_Init(hw_ts_InitMode_Full, &hrtc); /**< Initialize the TimerServer */9 h9 Q/ o0 X8 q2 j- X/ \9 h

  8. : f" s- _* G3 o- [0 ?. y# e5 i
  9. /* USER CODE BEGIN APPE_Init_1 */
    8 E( W" G9 R  @
  10.     APPD_Init();
    5 u) y4 r" k7 G; c: R1 K+ ~
  11. /* USER CODE END APPE_Init_1 */
    2 p6 U6 \$ c5 i, a# s/ m! a
  12.   appe_Tl_Init();  /* Initialize all transport layers */
    ; ?) v3 \5 j. g* U) j% b* r
  13. % b' L9 I8 m( t  ?
  14.   /**: X5 a3 C' c5 [6 A2 y& ~& }& T
  15.    * From now, the application is waiting for the ready event ( VS_HCI_C2_Ready )9 W; q  ?1 n* d
  16.    * received on the system channel before starting the Stack
    7 L; Y  H" j7 J, b' ^
  17.    * This system event is received with APPE_SysUserEvtRx()9 A# s( j# H) A& o
  18.    */
    ( t' e/ t  K+ K6 u4 W
  19. /* USER CODE BEGIN APPE_Init_2 */
    4 K5 j2 p$ h) O% X# Y! k

  20. , H6 V8 |) G! ^  A' N% E
  21. /* USER CODE END APPE_Init_2 */% i5 ]; d+ Q# Y% y
  22.    return;( b: h8 T4 h2 a/ {
  23. }
复制代码

4 k9 R) F6 ~+ o* B: G3 s3 `

  ?& w% ^* l' m& e结果演示
5 O0 E) x$ a4 R2 L3 ~& ]7 a
    下载完程序后,可以看到串口打印固件版本等信息。
) l  y& ~6 y: \
微信图片_20230411181207.png

: r3 S$ u! T! |3 H5 Z
    打开ST BLE ToolBox软件,可以看到该蓝牙已经可以搜索到。
9 y: j" q+ V" Q7 A8 E- ^! ?9 o
微信图片_20230411181203.png
* `( p# N4 p6 R
    点击connect进行连接。
    连接之后可以看到串口打印了连接事件。
* \/ a8 t) T7 _* W
微信图片_20230411181159.png

5 d, H% V, W+ p
    同时手机也显示该蓝牙模块连接成功。

; d3 G0 R/ z# _1 @; k) C2 h
微信图片_20230411181153.jpg

. h9 h7 }8 Z' K6 r) D* S3 c
转载自:记帖
如有侵权请联系删除

, ?" M0 B/ u1 ^0 C, U; w& g2 W! S& }: _( \+ a& d8 _8 w

; X" r; c/ m' V% e- g/ _: Q* w) o3 k# k4 [9 E
( L+ G/ c2 k) c' M5 C7 p, M7 n
微信图片_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 手机版