
概述 本篇文章主要介绍如何使用STM32CubeMX对生成STM32WB工程,并通过与STM32WB配对,应用程序对客户端读取或者写入特征值进行授权。 9 [+ w. ~& h6 w, P- D* Y* F6 T 硬件准备 首先需要准备一个开发板,这里我准备的是NUCLEO-WB55RG 的开发板: 0 s! F' @; _, f/ H2 A![]() 9 O" o7 A& C3 U; X' C 开启授权 在配置界面中,开启ATTR_PERMISSION_AUTHOR_READ,即需要授权才可以进行读取。 , A' ~2 Z5 L; o ![]() ) C* ^4 L* S- e8 E1 u% G 同时开启GATT_NOTIFY_READ_REQ_AND_WAIT_FOR_APPL_RESP事件,当客户端每次进行读取尝试的时候,会产生一个EVT_BLUE_GATT_READ_PERMIT_REQ事件。 L8 K7 D0 u" ]% X( M![]() 配置完毕重新生成代码。 ![]() 代码配置2 N0 g5 \/ d- h+ S% f# e! [. U 添加打印,方便查看是否执行了该代码段。 1 r6 J' W& T0 Q9 f D![]() 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 程序将超时。 ![]() 结果演示* H6 `6 `7 R4 h' Q 下载完程序后,可以看到串口打印固件版本等信息。 ![]() 打开ST BLE ToolBox软件,可以看到该蓝牙已经可以搜索到。 ![]() 点击connect进行连接。 连接之后可以看到串口打印了连接事件。 ( }# B; h; }% W0 e. q3 j' V![]() 同时手机也显示该蓝牙模块连接成功。 ![]() 让后我们试着读取他。 ![]() 可以看到已经成功读取出来。 8 D. E3 Z$ w/ q6 G# g![]() 同时串口在每次读取时候都会进行打印。 - k' b0 N& A- P* v/ h![]() 若注释掉,则无法读取。 ) e2 C7 c2 n1 c j![]() ![]() 转载自:记帖 如有侵权请联系删除, o; u7 V7 m, p* ^+ u+ y - I5 g( ~$ P7 `7 V. P |
【NUCLEO-WB09KE评测】+3.蓝牙广播
Nucleo-STM32WB09KE测评-蓝牙调试并使用OLED显示数据
【NUCLEO-WB09KE评测】创建BLE工程和开启调试信息
【NUCLEO-WB09KE评测】+2.串口打印
【NUCLEO-WB09KE评测】+5.实现标准电量服务
【NUCLEO-WB09KE评测】BLE例程HeartRate及工具探索
STM32WB系列MCU低功耗测试
Nucleo-STM32WB09KE测评--IIC传感器读取
【NUCLEO-WB09KE评测】+4.蓝牙控制LED
【NUCLEO-WB09KE评测】+1.点灯