STM32WB55_NUCLEO開發.8----讀取授權

概述

硬件準備

視頻教學

源碼下載

開啓ATTR_PERMISSION_AUTHOR_READ

代碼配置

結果演示

最後

概述

本篇文章主要介紹如何使用STM32CubeMX對生成STM32WB工程,並通過與STM32WB配對,應用程序對客户端讀取或者寫入特徵值進行授權。

硬件準備

首先需要準備一個開發板,這裏我準備的是NUCLEO-WB55RG 的開發板:

stm32mp157d開發板移植opencv_客户端

視頻教學


開啓ATTR_PERMISSION_AUTHOR_READ

在配置界面中,開啓ATTR_PERMISSION_AUTHOR_READ,即需要授權才可以進行讀取。

stm32mp157d開發板移植opencv_串口_02

同時開啓GATT_NOTIFY_READ_REQ_AND_WAIT_FOR_APPL_RESP事件,當客户端每次進行讀取嘗試的時候,會產生一個EVT_BLUE_GATT_READ_PERMIT_REQ事件。

stm32mp157d開發板移植opencv_客户端_03


配置完畢重新生成代碼。

stm32mp157d開發板移植opencv_應用程序_04

代碼配置

添加打印,方便查看是否執行了該代碼段。

stm32mp157d開發板移植opencv_客户端_05

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 程序將超時。

stm32mp157d開發板移植opencv_客户端_06

結果演示

下載完程序後,可以看到串口打印固件版本等信息。

stm32mp157d開發板移植opencv_應用程序_07


打開ST BLE ToolBox軟件(APP在羣內有615061293),可以看到該藍牙已經可以搜索到。

stm32mp157d開發板移植opencv_應用程序_08


點擊connect進行連接。

連接之後可以看到串口打印了連接事件。

stm32mp157d開發板移植opencv_客户端_09

同時手機也顯示該藍牙模塊連接成功。

stm32mp157d開發板移植opencv_串口_10


讓後我們試着讀取他。

stm32mp157d開發板移植opencv_串口_11


可以看到已經成功讀取出來。

stm32mp157d開發板移植opencv_應用程序_12


同時串口在每次讀取時候都會進行打印。

stm32mp157d開發板移植opencv_應用程序_13


若註釋掉,則無法讀取。

stm32mp157d開發板移植opencv_客户端_14


stm32mp157d開發板移植opencv_應用程序_15

最後