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

基于STM32WB55开发之监测STM32WB连接状态(1)

[复制链接]
攻城狮Melo 发布时间:2023-11-16 14:48
套件概述
  I9 g, o6 C0 _) n6 @5 _9 }STM32WB系列微控制器代表了STMicroelectronics在无线技术领域的新一代创新,集成了Bluetooth 5.0、Zigbee和Thread等多种无线通信协议。而在这些无线应用中,监测和管理连接状态显得尤为关键。确保可靠连接不仅对于数据的实时传输至关重要,而且在面对低功耗需求、设备管理和故障诊断时,都有着不可或缺的作用。
  [+ J2 E, I$ m
5 W' c0 v9 Q2 ?2 U
本文将深入探讨STM32WB的连接状态监测机制。我们首先会讨论为什么需要监测连接状态,然后介绍STM32WB提供的相关工具和技术。随后,我们会详细解释如何使用这些工具来实时跟踪和管理连接状态,以及如何解读和响应不同的连接状态事件。通过这些内容,读者将能够更好地理解和利用STM32WB的无线连接功能,为其应用带来更高的可靠性和效率。4 I5 ]; G9 n2 [4 b6 u: _. c
: x9 p! l) R  i, ?- j
微信图片_20231116144815.png , b, Q: r5 E4 l% P

( T& g+ J3 L" k$ A+ S6 A7 R% l- i
. j- ~' p# ]! [9 o选择芯片型号
- }* s" z( o9 r: k( {) P6 N( u6 Q/ u/ f0 M1 R, o, B$ f
微信图片_20231116144811.png / E; [/ d$ z6 ^# B/ A

0 ?; D3 s1 e. I. [- s配置时钟源 . Q. F- B8 @. Y. l2 B
HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用外置的时钟源,故都选择Crystal/Ceramic Resonator选项,如下所示:
6 U  }. n2 y: \' F7 j1 y4 c6 u1 K7 M
微信图片_20231116144807.png
3 O2 k3 @1 D* n! d/ e. X- s4 f
5 k6 ^; C3 J. g& I, g: n0 v0 E
配置时钟树
; f6 z* c" E% j6 l" h! i& y9 O# B( v) Q- @8 p& b
微信图片_20231116144804.png
5 U0 Q) Z& E9 s3 |' y; A

) G' \$ F3 k+ G! Q$ F5 PRTC时钟配置 # e: c+ H/ J8 G8 {! s
, S. P" }1 o0 q2 |, D5 p
微信图片_20231116144800.png ' f1 _: c0 r8 B
1 J5 Q) w8 |3 f1 U  g+ ^& d' w
RFWKP时钟配置' L0 h9 ^6 C2 h4 q9 `) N& j3 e

1 e6 ^- E/ u; \( N$ k4 Y* O' ~( a' `1 X
微信图片_20231116144757.png & u9 q8 O- X& S9 Y1 g

! t* w$ ~% e* X6 e5 v8 _( e: G, h2 y! M/ H% [5 l  q
" K9 |& P- ~# B9 \& U2 W
查看开启STM32_WPAN条件 ' \+ i# A! Z# Y
可以看到,需要开启RF、RTC、RCC、IPCC、HSEM。
; i! i( C7 Z/ I+ y/ i. m2 O( Z# X' D0 X: ?
微信图片_20231116144753.png
# ?+ s0 o! j; t6 P% ~
; l' Z9 I2 `4 Y  B  A
, W- x1 s! Q6 f, S+ e+ M
配置HSEM
1 N- c0 u& w9 N硬件信号量(HSEM)模块用于管理多个进程之间共享的访问权限和资源同步。
* O' l3 c0 g& p+ X  g' k  S, [开启HSEM如下。2 E2 Q. a* n" T

9 P$ _; R% ]; a% L 微信图片_20231116144750.png * R/ v% }7 s8 K! }" F) e
0 ^' d* i- Q. u6 ~. Y9 A1 @# S; Y
配置IPCC # D% C7 y# S1 e
通信控制器(IPCC)模块的主要用于cpu之间的信号消息交换。. J& K& U1 [/ }% ^; ]
开启如下所示。
4 C8 v' {+ B' t  k3 F) W: \/ [, ~7 M2 D! s5 X2 ~* D& o
微信图片_20231116144746.png
, s2 x" L+ k/ k5 s' w8 }& s, I* U+ R3 v1 ~8 S5 k' N" ]
配置RTC , \8 N: q: R5 V

: y* O; p& D/ ~* c! P0 D4 x+ E
微信图片_20231116144743.png ) _" Z$ ?0 t1 H; ]+ r8 R
* R# W0 _! p8 t0 p
启动RF
9 @7 V! }* E. N  @& H6 V* X1 f' Y' Z
, Y9 A+ W4 u& B& J' d! e, Q
微信图片_20231116144740.png
* @" Q/ {3 e7 n( h

4 H/ d$ K- \, z" O0 a5 N# C- o开启蓝牙 3 h8 G) h+ W% t  F. ?% n: F
) `: {/ s! ~2 a
微信图片_20231116144737.png
! \- R' u! V6 ^) V0 I2 B

0 U% e2 b9 R( H1 \5 I& W配置为自定义模板。
9 h, s* }5 L- A" T1 y4 g) N. x2 h" e4 c) ?( w5 e
微信图片_20231116144727.png
/ U- y& c! ?8 T$ ]

! o2 r2 \  ?8 G% o8 r2 @" o命名设备名  H4 m, R' P! T9 B: X
" r+ O7 z7 I) Q$ S6 D1 S- [0 q; H
微信图片_20231116144723.png
3 [& b' ~, j7 Y" d$ K6 @- ^: H
* |+ F; I1 F9 ^  E- O( p配置BLE GATT
. f& E9 \$ o1 Y1 X% ]- f2 E8 K. O9 U6 D
微信图片_20231116144718.png $ I- |' j% v% w) o

8 H& ~' g3 y: X! j. B6 I  B配置SVC
! u! [: Z2 U( ?. @7 q: L& W( L- j; C+ i5 q8 P1 Q" y" }
微信图片_20231116144715.png
) {+ i! g- S$ ^- o5 I
- [4 h  @3 i( D8 ?+ b6 j, T) VLED配置 ( n' r9 e, z7 l
查看原理图可以得知PB0为蓝色LED,PB1为绿色LED。3 X. M+ k! J: L8 l8 f

& h2 J6 v  e, ]/ A
微信图片_20231116144711.png
# o# N; o2 R/ J7 v- w' j! W, ]! z$ Z; {/ ]& ]* L8 k8 o( d

- V/ s7 i$ R/ q: {) i( M配置PB0、PB1为输出IO。
+ {6 g0 S, l, Q6 m( g
+ J* Q, L! m* z3 B$ W
微信图片_20231116144708.png 9 ^' z7 X% T9 q8 q
; x* ^4 `! w2 W# y, `2 ?4 z  k
设置工程信息 6 ]5 U% n( I' U
4 \0 d! R9 e: ~. f: E
微信图片_20231116144705.png
3 E; P9 E* V* U% ^; C# ?8 d2 j$ M
2 U( d' J* m4 H- y工程文件设置
/ ~: o! g* ?: f+ c# x) B! }& [( q! l3 f! K
微信图片_20231116144655.png
  T( a7 D# W' B6 G! @

8 r8 f6 Q5 T& a# q9 _$ USVCCTL_App_Notification
* t2 t" Q# B" Z' O7 O8 ESVCCTL_App_Notification函数是一个蓝牙事件处理器,用于响应和处理STM32WB BLE堆栈中发生的各种事件。
+ X# P. T3 L' \1 L
! W4 a( Q, W+ J, D& c9 U事件处理的主要内容:. H* k6 l) [4 L% K  S
1.断开连接事件 (HCI_DISCONNECTION_COMPLETE_EVT_CODE)% q; a7 {! [, D4 y+ l. [& ]
2.元事件 (HCI_LE_META_EVT_CODE)
. a+ D- _% M3 c( K8 p3.这部分处理了几个子事件,如HCI_LE_CONNECTION_UPDATE_COMPLETE_SUBEVT_CODE(连接更新完成)和HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE(新的连接建立完成)。
6 ~/ ~7 v* _& z4.厂商特定调试事件 (HCI_VENDOR_SPECIFIC_DEBUG_EVT_CODE)# @+ X4 u$ ^! R4 M; D2 M' ~
“在HCI_LE_CONNECTION_COMPLETE_SUBEVT_CODE事件中,我们能够判断Bluetooth Low Energy(BLE)设备是否已成功建立了一个新的连接。相反,在HCI_DISCONNECTION_COMPLETE_EVT_CODE事件里,我们可以确认是否一个已存在的连接已经被断开。这两个事件为我们提供了监控BLE连接状态的重要手段,从而使我们能够更好地管理设备的连接生命周期。”
! ]0 n5 U: T- e8 g  U4 r9 |9 }! s: u+ b* z+ c" ?3 n
  1.       /* USER CODE BEGIN EVT_DISCONN_COMPLETE */
    8 f$ D) ]( i; i) G& O; Y- @& ]
  2.       HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_1);) a: ^  }: k6 C5 o4 f! {6 d' T
  3.       /* USER CODE END EVT_DISCONN_COMPLETE */
复制代码
6 z, ~( G% p4 [
微信图片_20231116144633.png 2 k2 @- L( F' g9 B
% q# V" t0 e& R  A  H
0 [2 n$ g  A6 R3 H: f7 f& |
在HCI_DISCONNECTION_COMPLETE_EVT_CODE中添加一个IO翻转函数。
. \4 T% I% ]7 X. H1 C$ M- h; a0 N( u, J. @- S3 n( b  n
微信图片_20231116144629.png 2 Y4 S$ J2 N. D/ ]

0 k: y, R8 B+ h7 I结果演示 ' Y9 [$ a7 D3 C, M' ]
通过手机和STM32WB建立连接和断开连接可以查看到IO扣电平变化。% H2 }2 f# ]) T+ ?! e3 x. z

9 v# z0 H% U0 \) f! H
微信图片_20231116144626.png
2 D8 c+ s2 Y' G, x6 [
9 K- Q7 i! t( H, K 微信图片_20231116144622.png 9 H; y9 g! \) O, w8 ^/ o/ }& X% G
" c) }5 r" k: y/ W, C
转载自: 记帖如有侵权请联系删除
" F! s5 M: \" @' {
. V8 j+ J3 z3 u& d+ i: N. |& S2 z  p8 p5 y. O2 F
* c7 Y5 w& o7 ]+ P
赞 收藏 评论0 发布时间:2023-11-16 14:48

举报

0个回答

所属标签

相似技术帖

官网相关资源

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