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

概述

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

硬件准备

首先需要准备一个开发板,这里我准备的是WB55RG 的开发板:
在这里插入图片描述

视频教学

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

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

样品申请

https://www.wjx.top/vm/OhcKxJk.aspx#

选择芯片型号

在这里插入图片描述

配置时钟源

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

配置时钟树

在这里插入图片描述

RTC时钟配置

在这里插入图片描述
RFWKP时钟配置

在这里插入图片描述

查看开启STM32_WPAN条件

可以看到,需要开启RF、RTC、RCC、IPCC、HSEM。
在这里插入图片描述

配置HSEM

硬件信号量(HSEM)模块用于管理多个进程之间共享的访问权限和资源同步。
开启HSEM如下。
在这里插入图片描述

配置IPCC

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

在这里插入图片描述

配置RTC

在这里插入图片描述

启动RF

在这里插入图片描述

开启蓝牙

在这里插入图片描述

配置为自定义模板。
在这里插入图片描述

命名设备名

在这里插入图片描述

配置BLE GATT

在这里插入图片描述

配置SVC
在这里插入图片描述

设置工程信息

在这里插入图片描述

工程文件设置

在这里插入图片描述

修改置BLE设备公共地址

设置公共地址的ACI命令为:
tBleStatus aci_hal_write_config_data(uint8_t offset, uint8_t len, const uint8_t *val).
在这里插入图片描述

修改方式如下所示。

在这里插入图片描述

Ble_Hci_Gap_Gatt_Init

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

在这里插入图片描述

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

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_24312945/article/details/132656725