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

STM32WB55_NUCLEO开发(8)----授权

[复制链接]
STMCU小助手 发布时间:2022-8-18 21:14
概述
' W( W* @5 M" V0 Z$ R; `& a3 l* a% M本篇文章主要介绍如何使用STM32CubeMX对生成STM32WB工程,并通过与STM32WB配对,应用程序对客户端读取或者写入特征值进行授权。% N, }% H. v: }8 ~* k

9 z) L+ e6 L- z; q7 \) T' h硬件准备
: M: S" @. B1 i0 X. x; c首先需要准备一个开发板,这里我准备的是NUCLEO-WB55RG 的开发板:1 ^+ q$ U+ w( r# y8 D
8 `2 X! M# I! O; v2 m6 n8 G
da9ef49d616d44a79d672bce4a5ef5f4.png / b4 X, S9 `# |2 X5 x

0 V6 }7 P9 X: r% c  R1 S
2 C, u: w( M) i7 k2 @. ~7 s; H% x( ^. w5 g3 b6 Q1 X
开启ATTR_PERMISSION_AUTHOR_READ$ j+ a# }8 R- u8 W/ G1 v; f8 n, o
在配置界面中,开启ATTR_PERMISSION_AUTHOR_READ,即需要授权才可以进行读取。
7 N# {0 L/ a6 I% E, V$ ^
; m( E- Q3 ~/ Y; F7 } 38be67530e57427cb8f41ab9cbb1d07c.png + v% E6 M/ P) x7 F  W' U

: Y1 I" [* t* K  x同时开启GATT_NOTIFY_READ_REQ_AND_WAIT_FOR_APPL_RESP事件,当客户端每次进行读取尝试的时候,会产生一个EVT_BLUE_GATT_READ_PERMIT_REQ事件。
! P, s' a2 c- C4 e9 h( {
& P6 g* o/ R' l) Z# `' v 497d58e4319d4a6693f3cd4d440b1f60.png & e3 z" v# L$ |; q5 U* S3 W

6 _3 a3 |, c. L/ L! p配置完毕重新生成代码。
$ f# l1 Q, v* ~# c9 v) `% g: c' r
- b3 R& z$ C0 N) @8 v9 \9 j% v* E fdd215a4f1c34db5b7655a09b742f85b.png 0 G5 ?$ E! U* |1 W9 Y+ U

5 Z: D9 q( e& Q. Y代码配置
7 B- j4 Z8 x8 J7 f9 g& Q添加打印,方便查看是否执行了该代码段。" H: [8 M# I1 r5 M6 R6 ]+ J

5 t7 m, {/ T* i1 A$ C. Q. v0 f e57e185f3b394c879ecbb521811b7209.png
3 A3 h  H# d4 c$ n6 x, d$ N8 s
1 Q* j" W- f/ z! Oaci_gatt_allow_read()是允许 GATT 服务器发送对来自客户端的读取请求的响应。应用程序必须在收到EVT_BLUE_GATT_READ_PERMIT_REQ或EVT_BLUE_GATT_READ_MULTI_PERMIT_REQ时发送此命令。此命令向堆栈指示可以将响应发送到客户端。因此,如果应用程序希望在客户端读取任何属性之前更新它们,它必须使用 aci_gatt_update_char_value 更新特征值,然后发出此命令。应用程序应在 30 秒内执行所需的操作,否则 GATT 程序将超时。
/ |' N0 |; F* y) P( n' u
4 [% c, i0 G0 @/ q 5049ddc2ecc14121a8ef2a13dffb3eb7.png
% @$ B9 T& @: E# V4 `
! \- s) t2 Y1 \* K/ |: t( A8 b结果演示4 }9 H- ^7 v% V
下载完程序后,可以看到串口打印固件版本等信息。5 w/ `! C- u8 W8 J! ?9 u- S

! F0 R9 E5 h7 m/ I 5a0af8496fe34ffc9a8cea97c229bd9e.png , N1 Q; O' |2 K3 Y+ J; r
+ K3 c# s' H* u9 _6 L7 s. B
打开ST BLE ToolBox软件(APP在群内有615061293),可以看到该蓝牙已经可以搜索到。
) }  w" x/ _( t! ?; ~* q$ B7 k
0 v1 K8 I" T8 ^: w5 ^; F; ` 6ba0fd35ce3f42929a13bc32d924f9aa.png
. H! d0 i" Q7 W3 M; x
8 J' M3 g6 w# u3 G* U7 l点击connect进行连接。. `, Z( g; t7 `- X& {1 _) ]$ ~7 o. a
连接之后可以看到串口打印了连接事件。- C% G5 }" k8 h" k9 a1 \

8 f" R" }" B. O/ r7 M! D ef108805419d44888b349024a84fbdd1.png
1 Z0 e4 _8 t2 ]9 s$ f' _
+ G& ^5 l0 i8 c/ N4 W! {& M$ K同时手机也显示该蓝牙模块连接成功。0 f9 c1 l1 f  k9 T, c
6 K. O$ q6 h9 r% k# B% `3 v3 Z1 ~
80bb0467f220417684af488b14c476ad.png
0 J3 ^) X- a5 j. S7 o( O) }9 \& l
让后我们试着读取他。! V% O" o$ J0 g% p5 ]! d* P
) F9 N# I. z& Z- `3 r3 y
a63910404f3943b1934698e425b2928c.png
4 _% R) n! g# _; R9 E
) [7 ]( }: u; Z可以看到已经成功读取出来。
) h4 X/ r5 p% Q- Z8 ^* a# F5 T9 c1 F# z: z! F
8df9f3d279fe47c789a2db0dfe6137a1.png % e; E' p6 t; {) J, @% G' @, |
$ w" \1 L$ t. ^9 I/ E
同时串口在每次读取时候都会进行打印。
/ C2 q7 K2 a! w1 [. R' a2 E- F4 N1 |% V" R
fa64acc53e6d43a3a0fc4f3ae6187193.png 2 j+ o3 Q, \2 F* Y+ N  G5 o
" D9 S# u5 K( R* l4 T
若注释掉,则无法读取。( ^, {4 K  Z6 O' @: G( N
4fa626c0c0384fad86760184b76a93de.png
) W1 s& P1 Y* {7 S
7 J4 W& G' l3 x: w5 [  g 01b2a8c35b9f41668591ce52f3fc9934.png 7 Z  o. Z5 K2 A* @4 \$ \& l

) p  \2 ^/ n# f) Q( U, ]! {5 p* V* Y) l* r
- v* z9 b) u$ t
- D$ ~9 \5 F7 P1 f% z
2 [& C& j) z6 W+ _
收藏 评论0 发布时间:2022-8-18 21:14

举报

0个回答

所属标签

相似技术帖

官网相关资源

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