概述
在嵌入式藍(lán)牙開發(fā)中,特別是針對STM32WB系列,修改或配置藍(lán)牙設(shè)備地址是常見的需求。不論是為了實(shí)現(xiàn)特定的測試、滿足隱私要求,還是為了區(qū)分開發(fā)和生產(chǎn)設(shè)備,對藍(lán)牙地址的定制化處理都是至關(guān)重要的。本文將重點(diǎn)介紹如何利用aci_hal_write_config_data函數(shù)來成功地修改STM32WB的藍(lán)牙地址。我們會詳細(xì)探討該函數(shù)的工作原理、所需的參數(shù)以及實(shí)際操作步驟,確保讀者能夠快速、高效地完成相關(guān)任務(wù)。
最近在弄ST和瑞薩RA的課程,需要樣片的可以加群申請:615061293 。
硬件準(zhǔn)備
首先需要準(zhǔn)備一個開發(fā)板,這里我準(zhǔn)備的是WB55RG 的開發(fā)板:
視頻教學(xué)
[https://www.bilibili.com/video/BV1sN411v7ag/
樣品申請
[https://www.wjx.top/vm/OhcKxJk.aspx#m/OhcKxJk.aspx#)
完整代碼下載
[https://download.csdn.net/download/qq_24312945/88295322
選擇芯片型號

配置時鐘源
HSE與LSE分別為外部高速時鐘和低速時鐘,在本文中使用外置的時鐘源,故都選擇Crystal/Ceramic Resonator選項(xiàng),如下所示:
配置時鐘樹

RTC時鐘配置

RFWKP時鐘配置

查看開啟STM32_WPAN條件
可以看到,需要開啟RF、RTC、RCC、IPCC、HSEM。
配置HSEM
硬件信號量(HSEM)模塊用于管理多個進(jìn)程之間共享的訪問權(quán)限和資源同步。
開啟HSEM如下。
配置IPCC
通信控制器(IPCC)模塊的主要用于cpu之間的信號消息交換。
開啟如下所示。

配置RTC

啟動RF

開啟藍(lán)牙

配置為自定義模板。
命名設(shè)備名

配置BLE GATT

配置SVC
設(shè)置工程信息

工程文件設(shè)置

修改置BLE設(shè)備公共地址
設(shè)置公共地址的ACI命令為:
tBleStatus aci_hal_write_config_data(uint8_t offset, uint8_t len, const uint8_t *val).
修改方式如下所示。

Ble_Hci_Gap_Gatt_Init
這段代碼主要用于初始化STM32WB系列的藍(lán)牙(BLE)相關(guān)功能。

下面選中的函數(shù)可以修改BLE設(shè)備公共地址。
設(shè)置BLE公共地址:首先,獲取BLE默認(rèn)地址BleGetBdAddress,然后通過aci_hal_write_config_data函數(shù)使用預(yù)定義的地址(0xFF, 0xEE, 0xDD, 0xCC, 0xBB, 0xAA)覆蓋它。
生成/設(shè)置靜態(tài)隨機(jī)地址:根據(jù)條件編譯標(biāo)志來確定是使用預(yù)定義的靜態(tài)隨機(jī)地址還是使用隨機(jī)數(shù)生成器產(chǎn)生的地址。設(shè)置了正確的格式后,通過aci_hal_write_config_data將隨機(jī)地址寫入BLE控制器。

uint8_t bdaddr[] = {0xFF, 0xEE, 0xDD, 0xCC, 0xBB, 0xAA};
ret = aci_hal_write_config_data(CONFIG_DATA_PUBADDR_OFFSET, CONFIG_DATA_PUBADDR_LEN, bdaddr);
結(jié)果演示
通過手機(jī)和STM32WB建立連接和斷開連接可以查看到BLE地址如下。

-
藍(lán)牙
+關(guān)注
關(guān)注
119文章
6274瀏覽量
178157 -
BLE
+關(guān)注
關(guān)注
13文章
767瀏覽量
66188 -
地址
+關(guān)注
關(guān)注
1文章
32瀏覽量
11185 -
STM32WB55
+關(guān)注
關(guān)注
0文章
26瀏覽量
1960
發(fā)布評論請先 登錄
STM32WB55開發(fā)(1)----套件概述
STM32WB55開發(fā)(4)----配置串口打印Debug調(diào)試信息
STM32WB55開發(fā)板單板設(shè)計
STM32WB55是如何在RT-Thread系統(tǒng)上移植的
STM32WB55的相關(guān)資料推薦
如何控制stm32wb55的電源呢
求助,誰能指出STM32WB55 Nucleo的藍(lán)牙5.2堆棧?
stm32wb55 待機(jī)stop睡眠 喚醒后藍(lán)牙工作不正常
STM32WB55單片機(jī)的PCB和電路圖合集免費(fèi)下載
STM32WB55開發(fā)板(一)單板設(shè)計-硬件介紹
STM32WB55 藍(lán)牙協(xié)議棧運(yùn)行流程解析
STM32WB55在RT-Thread系統(tǒng)上移植官方藍(lán)牙BLE功能
stm32wb55 基于rtt的ble sample制作過程
STM32WB55開發(fā)(2)----修改藍(lán)牙地址
評論