STM32WB55开发(2)----修改蓝牙地址

描述

概述

在嵌入式蓝牙开发中,特别是针对STM32WB系列,修改或配置蓝牙设备地址是常见的需求。不论是为了实现特定的测试、满足隐私要求,还是为了区分开发和生产设备,对蓝牙地址的定制化处理都是至关重要的。本文将重点介绍如何利用aci_hal_write_config_data函数来成功地修改STM32WB的蓝牙地址。我们会详细探讨该函数的工作原理、所需的参数以及实际操作步骤,确保读者能够快速、高效地完成相关任务。
最近在弄ST和瑞萨RA的课程,需要样片的可以加群申请:615061293 。

硬件准备

首先需要准备一个开发板,这里我准备的是WB55RG 的开发板:
BLE

视频教学

[https://www.bilibili.com/video/BV1sN411v7ag/

样品申请

[https://www.wjx.top/vm/OhcKxJk.aspx#m/OhcKxJk.aspx#)

完整代码下载

[https://download.csdn.net/download/qq_24312945/88295322

选择芯片型号

BLE

配置时钟源

HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用外置的时钟源,故都选择Crystal/Ceramic Resonator选项,如下所示:
BLE

配置时钟树

BLE

RTC时钟配置

BLE
RFWKP时钟配置

BLE

查看开启STM32_WPAN条件

可以看到,需要开启RF、RTC、RCC、IPCC、HSEM。
BLE

配置HSEM

硬件信号量(HSEM)模块用于管理多个进程之间共享的访问权限和资源同步。
开启HSEM如下。
BLE

配置IPCC

通信控制器(IPCC)模块的主要用于cpu之间的信号消息交换。
开启如下所示。

BLE

配置RTC

BLE

启动RF

BLE

开启蓝牙

BLE

配置为自定义模板。
BLE

命名设备名

BLE

配置BLE GATT

BLE

配置SVC
BLE

设置工程信息

BLE

工程文件设置

BLE

修改置BLE设备公共地址

设置公共地址的ACI命令为:
tBleStatus aci_hal_write_config_data(uint8_t offset, uint8_t len, const uint8_t *val).
BLE

修改方式如下所示。

BLE

Ble_Hci_Gap_Gatt_Init

这段代码主要用于初始化STM32WB系列的蓝牙(BLE)相关功能。

BLE

下面选中的函数可以修改BLE设备公共地址。
设置BLE公共地址:首先,获取BLE默认地址BleGetBdAddress,然后通过aci_hal_write_config_data函数使用预定义的地址(0xFF, 0xEE, 0xDD, 0xCC, 0xBB, 0xAA)覆盖它。
生成/设置静态随机地址:根据条件编译标志来确定是使用预定义的静态随机地址还是使用随机数生成器产生的地址。设置了正确的格式后,通过aci_hal_write_config_data将随机地址写入BLE控制器。

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);

结果演示

通过手机和STM32WB建立连接和断开连接可以查看到BLE地址如下。

BLE

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分