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

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

[复制链接]
STMCU小助手 发布时间:2022-8-18 21:14
概述9 E  o4 U4 F, ~: Q6 \5 g  F
本篇文章主要介绍如何使用STM32CubeMX对生成STM32WB工程,并通过与STM32WB配对,应用程序对客户端读取或者写入特征值进行授权。
) r* `- [% X' G& @& ]* |6 O1 M8 ~4 s- V5 M
硬件准备
  v$ ?3 x4 j+ {  B首先需要准备一个开发板,这里我准备的是NUCLEO-WB55RG 的开发板:1 n0 g; T6 \9 e' G

. L% K4 U% B, ^) |# n da9ef49d616d44a79d672bce4a5ef5f4.png
; b) ^3 j7 A+ y9 F  n+ N6 E6 V+ I  P( s* c2 X0 J& j, q

& r' O) `1 w" W6 B) ^
8 U- t& c) j2 L8 m% t# B开启ATTR_PERMISSION_AUTHOR_READ
' D3 I0 n7 T" x0 \; T在配置界面中,开启ATTR_PERMISSION_AUTHOR_READ,即需要授权才可以进行读取。
7 `1 \9 e) Y6 G* ?: i. P
) A' u0 B, U( {" K0 \ 38be67530e57427cb8f41ab9cbb1d07c.png * d2 s; ^; [5 r

- }4 K; `. t3 c: R" j8 ]同时开启GATT_NOTIFY_READ_REQ_AND_WAIT_FOR_APPL_RESP事件,当客户端每次进行读取尝试的时候,会产生一个EVT_BLUE_GATT_READ_PERMIT_REQ事件。
6 k" k' f, g3 P+ O6 |2 N, Z& Y: Z8 q2 m9 O$ J% Z' q* H; W% T
497d58e4319d4a6693f3cd4d440b1f60.png
* a8 b$ O. f# `/ y$ V9 `2 @2 ?" e- U8 D9 R
配置完毕重新生成代码。6 a  s2 k# J. U! P0 y

7 g, H$ k5 P4 n1 R fdd215a4f1c34db5b7655a09b742f85b.png
, a3 }* Y& v2 k" ~) Q8 x7 Q  d$ C) y! k- b+ e7 b5 E
代码配置
6 y( {' ?& O. z! W/ V* T. O+ L% x3 {, C添加打印,方便查看是否执行了该代码段。2 _% q4 m1 i- g6 i
6 b9 R# ]0 O4 F% I" h" B4 o
e57e185f3b394c879ecbb521811b7209.png 4 O/ g' t) V2 P$ ]. i% s

. Z2 Z3 H' M+ @# d# ~2 K) x# b7 Qaci_gatt_allow_read()是允许 GATT 服务器发送对来自客户端的读取请求的响应。应用程序必须在收到EVT_BLUE_GATT_READ_PERMIT_REQ或EVT_BLUE_GATT_READ_MULTI_PERMIT_REQ时发送此命令。此命令向堆栈指示可以将响应发送到客户端。因此,如果应用程序希望在客户端读取任何属性之前更新它们,它必须使用 aci_gatt_update_char_value 更新特征值,然后发出此命令。应用程序应在 30 秒内执行所需的操作,否则 GATT 程序将超时。
5 s+ c; ?$ g  m( S1 b8 G8 v
* H& k* ^- W7 M7 }3 D 5049ddc2ecc14121a8ef2a13dffb3eb7.png $ ]0 o' h  X6 F$ {/ \0 r% d

/ Q# k& \7 N+ C! Q结果演示
' R8 R& B% P9 H# g5 H& |% O下载完程序后,可以看到串口打印固件版本等信息。
, i6 x# X. {1 R7 p+ G  U! _$ I4 e- `! P' v- X9 g" {+ ~/ X
5a0af8496fe34ffc9a8cea97c229bd9e.png
8 q7 L/ v9 T/ {
3 g+ ~2 \9 \1 `% c8 G3 t打开ST BLE ToolBox软件(APP在群内有615061293),可以看到该蓝牙已经可以搜索到。9 Z' p# u2 d4 k3 ~- s  F

3 K/ f; i* F$ x5 Q 6ba0fd35ce3f42929a13bc32d924f9aa.png . e: d, ?+ G2 F4 s4 ~% C/ n

  B6 `) h, [7 y: [点击connect进行连接。
$ K7 \( _, b9 W9 v) o  d+ ^连接之后可以看到串口打印了连接事件。
( a+ [' X3 r, r$ l
% }8 C% i/ W' ] ef108805419d44888b349024a84fbdd1.png % Q9 r4 T7 S/ p2 H
9 C0 Q$ }3 ]5 Q9 F( V6 S: x
同时手机也显示该蓝牙模块连接成功。5 T6 K( O0 o. A8 l4 {) Y, L! S
7 s( Z4 y9 i# z& W
80bb0467f220417684af488b14c476ad.png - M% U3 i8 w2 X  C" ]; |' Q3 x1 s4 }8 T
8 _5 [& v8 s5 t6 X# B7 g
让后我们试着读取他。
" C. ^9 f4 K6 L5 P
" C% s9 o  m% J% G) u' Y a63910404f3943b1934698e425b2928c.png   L5 {) l( M& ~% M! ~" Z' Y

$ v# a% I8 `6 D) ]可以看到已经成功读取出来。
9 n  F4 _( j  ~6 [0 L+ L, S3 }0 A( k
8df9f3d279fe47c789a2db0dfe6137a1.png * @% t4 u4 j/ U, r8 t7 J3 @
+ k" n. a# u! D. R0 v5 U
同时串口在每次读取时候都会进行打印。8 y3 q7 ?% p9 @, f8 k$ u4 I

  w* T7 q5 Z- O8 E1 a3 T2 _ fa64acc53e6d43a3a0fc4f3ae6187193.png 3 q0 N+ i, z4 u% n* T( q3 o* l8 u

# q8 S! r% {# I+ g" E/ H若注释掉,则无法读取。5 i7 _8 _- _) T0 [
4fa626c0c0384fad86760184b76a93de.png % Q/ j1 I$ u/ ~# w# F
) X# M+ x( @6 m
01b2a8c35b9f41668591ce52f3fc9934.png ; `! o' S5 Q1 r" X& p* Z

- i& B6 x- j. N) c. d$ n+ p9 ]$ K+ l, N  t: A) J3 Q# R  \* R5 R
0 J( D* G1 K  h3 S6 R$ ~

5 `, M: y' \- E
" a  f$ `  N6 R8 s/ p
赞 收藏 评论0 发布时间:2022-8-18 21:14

举报

0个回答

所属标签

相似技术帖

官网相关资源

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