STMCU小助手
发布时间:2022-8-18 21:14
|
概述 本篇文章主要介绍如何使用STM32CubeMX对生成STM32WB工程,并通过与STM32WB配对,应用程序对客户端读取或者写入特征值进行授权。% N, }% H. v: }8 ~* k 硬件准备 首先需要准备一个开发板,这里我准备的是NUCLEO-WB55RG 的开发板:1 ^+ q$ U+ w( r# y8 D 8 `2 X! M# I! O; v2 m6 n8 G
( ^. w5 g3 b6 Q1 X 开启ATTR_PERMISSION_AUTHOR_READ$ j+ a# }8 R- u8 W/ G1 v; f8 n, o 在配置界面中,开启ATTR_PERMISSION_AUTHOR_READ,即需要授权才可以进行读取。
同时开启GATT_NOTIFY_READ_REQ_AND_WAIT_FOR_APPL_RESP事件,当客户端每次进行读取尝试的时候,会产生一个EVT_BLUE_GATT_READ_PERMIT_REQ事件。
配置完毕重新生成代码。
代码配置 添加打印,方便查看是否执行了该代码段。" H: [8 M# I1 r5 M6 R6 ]+ J
aci_gatt_allow_read()是允许 GATT 服务器发送对来自客户端的读取请求的响应。应用程序必须在收到EVT_BLUE_GATT_READ_PERMIT_REQ或EVT_BLUE_GATT_READ_MULTI_PERMIT_REQ时发送此命令。此命令向堆栈指示可以将响应发送到客户端。因此,如果应用程序希望在客户端读取任何属性之前更新它们,它必须使用 aci_gatt_update_char_value 更新特征值,然后发出此命令。应用程序应在 30 秒内执行所需的操作,否则 GATT 程序将超时。
结果演示4 }9 H- ^7 v% V 下载完程序后,可以看到串口打印固件版本等信息。5 w/ `! C- u8 W8 J! ?9 u- S
+ K3 c# s' H* u9 _6 L7 s. B 打开ST BLE ToolBox软件(APP在群内有615061293),可以看到该蓝牙已经可以搜索到。
点击connect进行连接。. `, Z( g; t7 `- X& {1 _) ]$ ~7 o. a 连接之后可以看到串口打印了连接事件。- C% G5 }" k8 h" k9 a1 \
同时手机也显示该蓝牙模块连接成功。0 f9 c1 l1 f k9 T, c 6 K. O$ q6 h9 r% k# B% `3 v3 Z1 ~
. S7 o( O) }9 \& l 让后我们试着读取他。! V% O" o$ J0 g% p5 ]! d* P ) F9 N# I. z& Z- `3 r3 y
可以看到已经成功读取出来。 - Z8 ^* a# F5 T9 c1 F# z: z! F
$ w" \1 L$ t. ^9 I/ E 同时串口在每次读取时候都会进行打印。 2 E- F4 N1 |% V" R
" D9 S# u5 K( R* l4 T 若注释掉,则无法读取。( ^, {4 K Z6 O' @: G( N
( U, ]! {5 p* V* Y) l* r - v* z9 b) u$ t - D$ ~9 \5 F7 P1 f% z 2 [& C& j) z6 W+ _ |
低功耗蓝牙无线升级:STM32WB OTA 固件更新技术解析
STM32WB Zigbee 自定义集群开发实战:AN5491 应用笔记深度解读
吃透:STM32WB 上 Zigbee 睡眠终端设备开发攻略
STM32 无线 MCU HSE 频率与启动时间精确调谐实战指南
深度解读:STM32WB 2.4GHz 低成本 PCB 蛇形天线设计实战指南
经验分享 | STM32WB 双核无线 MCU 开发全流程实战指南
STM32WB 基于 Custom Template 实现 BLE 私有协议 实操开发指南
详解STM32单片机的堆栈
STM32单片机进行除零运算,为何程序不崩溃?
从照明到楼宇:STM32WBx5 BLE Mesh 落地指南
微信公众号
手机版