概述
硬件準備
視頻教學
源碼下載
開啓ATTR_PERMISSION_AUTHOR_READ
代碼配置
結果演示
最後
概述
本篇文章主要介紹如何使用STM32CubeMX對生成STM32WB工程,並通過與STM32WB配對,應用程序對客户端讀取或者寫入特徵值進行授權。
硬件準備
首先需要準備一個開發板,這裏我準備的是NUCLEO-WB55RG 的開發板:
視頻教學
開啓ATTR_PERMISSION_AUTHOR_READ
在配置界面中,開啓ATTR_PERMISSION_AUTHOR_READ,即需要授權才可以進行讀取。
同時開啓GATT_NOTIFY_READ_REQ_AND_WAIT_FOR_APPL_RESP事件,當客户端每次進行讀取嘗試的時候,會產生一個EVT_BLUE_GATT_READ_PERMIT_REQ事件。
配置完畢重新生成代碼。
代碼配置
添加打印,方便查看是否執行了該代碼段。
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 程序將超時。
結果演示
下載完程序後,可以看到串口打印固件版本等信息。
打開ST BLE ToolBox軟件(APP在羣內有615061293),可以看到該藍牙已經可以搜索到。
點擊connect進行連接。
連接之後可以看到串口打印了連接事件。
同時手機也顯示該藍牙模塊連接成功。
讓後我們試着讀取他。
可以看到已經成功讀取出來。
同時串口在每次讀取時候都會進行打印。
若註釋掉,則無法讀取。
最後