0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

实战经验 | 一步一步创建STM32WBA BLE_Custom工程

STM32单片机 来源:未知 2023-11-30 13:25 次阅读


关键词:STM32WBA,BLE,定制化


目录预览

1、介绍

2使用CubeMX在STM32WBA上构建 Bluetooth Low Energy 应用

3、服务和特征配置

4、工具

5、NUCLEO-WBA52CG 的 CubeMX 初始化

6、验证蓝牙基本连接

7、使能串口日志追踪

8、小结


01

介绍


STM32WBA 是 ST 最新一代的 BLE 芯片。该芯片已经获得 STM32CubeMX 工具的支持,用户可使用 STM32CubeMX 的图形化界面、快速生成具备 IO 配置、时钟配置、外设配置、中间件使用配置、BLE 服务配置等内容的基础源码工程。


本文档将指导用户如何使用 STM32CubeMX 软件一步步生成基于 STM32WBA52MCU 的一个源码工程;该工程实现了 BLE 外设功能、并具有定制化的 BLE 服务。使用STM32WBA 系列其他芯片也可以参考此文档的步骤构建对应的基础源码工程。



02

使用CubeMX在STM32WBA上构建 Bluetooth Low Energy 应用


将 STM32CubeMX 生成的源码工程进行简单修改后,便可运行在 STM32WBA Nucleo 板上、实现 BLE 外设功能。


BLE 外设充当 GATT 服务器角色,手机 APP(ST BLE ToolBox)充当 GATT 客户端角色,他们之间可以进行数据收发。


图1.通信示意图


03

服务和特征配置


该 GATT 服务器公开了一个定制化的服务(SerialPortService)并包含三个特征:

特征 1 具有 Notify 属性,可发送数据给手机

特征 2 具有 Write without response 属性,可接收手机的数据

特征 3 具有 Read 属性,可接受手机的读请求并发送响应数据包


服务器的服务和特征配置列举如下 :


表1. 服务和特征配置


04

工具


4.1. 软件工具


要制作和使用这个项目,完成应用程序所需的软件工具是:

• STM32CubeMX 软件 (v6.8.0 以上)

• STM32CubeWBA MCU Package (v1.0.0 以上)

• IDE: STM32CubeIDE or IAR

• 串口终端 (TeraTerm)

• 手机应用程序 STBLEToolbox


4.2. 硬件工具


还需要一个 STM32WBA Nucleo 板和一个 micro-B 到 Type-A USB 电缆。


图2.硬件工具


05

NUCLEO-WBA52CG 的 CubeMX 初始化


5.1. CubeMX 初始化


打开 CubeMX 软件及 MCU 选择器,打开的过程可能会进行数据库更新,耐心等待更新完成即可。另外,确保 CubeMX 是 6.8.0 以上版本,否则将找不到 STM32WBA 系列芯片。


图3.芯片开始一个工程配置


进入 MCU 选择器页面后,按照下图的步骤选中我们需要的开发板。


图4.选择对应的芯片型号


  1. 选择系列分类

  2. 选择 STM32WBA 系列

  3. 选择对应的 STM32WBA 芯片型号

  4. 选择 Start Project


图5. 根据应用需求选择是否使能 TrustZone


图6. 切换到“Project Manager”页,命名工程和选择工程保存路径和设置堆栈


用户可以根据自己的应用需求对工程名称路径,IDE 类型以及堆和栈等进行设置,上图给了一个参考示例。配置完成后,选中 File > Save Project 以保存工程配置(保存为.ioc 文件)。


5.2. 基本外设的配置


5.2.1. 切换到配置 SW 调试口


图7. 配置 SW 调试口


5.2.2. 配置基本 RCC


图8. 配置 RCC


5.3. STM32_WPAN BLE 依赖的外设的配置


STM32WBA 的 STM32_WPAN(BLE)的依赖项比较多。在配置的时候,我们无需死记需要配置的项目,可以将鼠标移到 STM32_WPAN 模块中,停留 2 秒钟,则会出现提示信息,用户可根据这些提示信息来依次配置 STM32_WPAN BLE 需要的模块。


STM32_WPAN BLE 模块依赖的模块包括:ADC、CRC、RAMCFG、ICACHE、RNG、RF、和 RTC。当用户完成一个模块的配置后,鼠标光标回到 WPAN 模块时,提示信息会继续指导用户仍然需要配置的模块,直到全部模块配置完毕。


图9. 根据提示信息来依次配置 STM32_WPAN


5.3.1. 配置 ADC


图10. 配置 ADC


5.3.2. 配置 CRC


图11. 根据提示配置下一个模块(CRC)


图12. 配置 CRC


5.3.3. 配置 RAMCFG


图13. 配置 RAM


5.3.4. 配置 ICACHE


图14. 配置 ICACHE


5.3.5. 配置 RNG


图15. 配置 RNG


5.3.6. 配置 RF


图16. 配置 RF


5.3.7. 配置 RTC


图17. 配置 RTC 部分 1


图18. 配置 RTC 部分 2


5.3.8. 配置 STM32_WPAN


当 WPAN 依赖的模块全部配置完毕,我们便可以开始 WPAN 的配置:


图19. 配置 STM32_WPAN


5.4. BLE GAP 和 GATT 配置


5.4.1. 配置 GAP


图20. 配置广播数据


5.4.2. 配置 GATT 服务


图21. 配置 GATT(添加服务)


图22. 配置 GATT(对服务进行定制化配置)


5.4.3. 配置自定义服务的特征 1(上报数据特征)


图23. 配置上报数据特征


5.4.4. 配置自定义服务的特征 2(写数据特征)


图24. 配置写数据特征


5.4.5. 配置自定义服务的特征 3(读数据特征)


图25. 配置读数据特征


5.5. 其他配置与代码生成


5.5.1. 进入“Clock Configuration”页面,按下图进行时钟配置


图26. 配置时钟


5.5.2. 配置初始化函数


图27. 配置初始化函数


5.5.3. 根据配置生成工程代码,点击“GENERATE CODE”按钮,并等待源码工程的生成。点“Open Folder”后,可看到如下代码工程目录:


图28. 根据配置生成工程代码


06

验证蓝牙基本连接


本文演示的是 IAR 工程的生成,用户也可生成 CUBEIDE 工程。


打开 IAR 工程、用户还需要手工增加代码以开启广播,具体为:在 STM32_WPAN > App > app_ble.c > void APP_BLE_Init(void) 函数的尾部增加下图所示的函数:



然后编译、下载并复位,使代码运行起来。


使用 ST BLE ToolBox 扫描,并连接该外设,可验证我们上面的服务配置是否正确:


图29. 验证基本连接


07

使能串口日志追踪


7.1. 当用户需要使能串口 LOG 输出功能时,可重新回到 CubeMX 的界面,进行串口的配置:


图30. 配置串口


图31. 配置串口 DMA


7.2. 为串口配置 GPDMA


图32. 给串口配置 GPDMA TX


图33. 给串口配置 GPDMA RX


图34. 配置串口追踪 1


图35. 配置串口追踪 2


图36. 使能串口中断


图37. 配置串口注册 callback


完成以上配置后,可再次点击“GENERATE CODE”生成新的代码。新的代码会覆盖掉工程中旧的代码,但不会覆盖工程中的用户代码部分。


7.3. 添加代码、开启串口日志追踪


新的代码生成后,还要再手工添加一些代码:


在 app_conf.h 中添加宏定义“CFG_DBG_SUPPORTED”以及在 main.c 中添加函数RNG_KERNEL_CLK_OFF()



7.4. 验证串口日志追踪功能


验证串口日志的方法比较简单,直接打开串口助手,选择好对应的串口,然后设置波特率为 115200,无奇偶校验,数据为 8bit,1 位停止位。


图38. 配置串口终端


7.4.1. 验证读特征


验证读特征可以在代码中添加如下代码(每次读取数据,将数值加一后发送出去)



7.4.2. 验证写和 Notify(上报数据)特征


验证写特征和上报数据特征可以一起进行。当收到写特征的数据时,直接将数据更新到上报数据特征中提交给 Client 端,如下图所示,其中主要修改了两个 case:

一个是允许写,一个是将收到的数据写回去。



7.4.3. 验证日志追踪


图39. 验证蓝牙功能串口日志


08

小结


本文介绍了如何从芯片开始一步一步配置一个 BLE 工程,实际用户在配置自己的项目时可以自行根据自己的项目需求而做相应的修改。


完整内容请点击“阅读原文”下载原文档。



原文标题:实战经验 | 一步一步创建STM32WBA BLE_Custom工程

文章出处:【微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

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

    关注

    6032

    文章

    44513

    浏览量

    632691
  • STM32
    +关注

    关注

    2265

    文章

    10870

    浏览量

    354692

原文标题:实战经验 | 一步一步创建STM32WBA BLE_Custom工程

文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    英特尔将进一步分离芯片制造和设计业务

    面对公司成立50年来最为严峻的挑战,英特尔宣布了项重大战略调整,旨在通过进一步分离芯片制造与设计业务,重塑竞争力。这决策标志着英特尔在应对行业变革中的坚定步伐。
    的头像 发表于 09-19 16:48 252次阅读

    通过展频进一步优化EMI

    电子发烧友网站提供《通过展频进一步优化EMI.pdf》资料免费下载
    发表于 09-04 09:32 1次下载
    通过展频进<b class='flag-5'>一步</b>优化EMI

    用XDS200仿真PGA900时候,单步执行程序PC支持并没有按照C语言一步一步执行,为什么?

    我在用XDS200仿真PGA900时候,程序能正常引导到main,单步执行程序, PC支持并没有按照C语言一步一步执行, 这是什么原因? 以下是工程
    发表于 08-15 07:18

    昂科芯片烧录高质量出海 唱响越南一步步新技术研讨会

    8月8日,迎来了场科技盛事-2024越南一步步新技术研讨会在河内·美利亚酒店隆重举行。作为芯片烧录领域的领导者,昂科技术应邀参会,吸引了众多国内外业界专家和企业的关注。
    的头像 发表于 08-10 09:20 798次阅读

    散热第一步是导热

    一步提高产品的使用寿命。 产品型号有多种规格可选择(导热系数1.0~5.0W/m.K)。 合肥傲琪电子的导热硅脂、导热硅胶片还应用于对芯片、主板、功率管(MOS)、变压器、模块、PCB板、铝基板
    发表于 08-06 08:52

    使用STM32CubeIde生成STM32WBA BLE Audio工程时,如何配置Ble Audio模式?

    使用STM32CubeIde生成STM32WBA BLE Audio工程时,如何配置Ble Audio模式? 看STMCubeMX界面中没有
    发表于 05-27 06:18

    西门子与微软进一步扩展战略合作关系

    近日,西门子数字化工业软件与微软宣布进一步扩展双方的战略合作关系。通过微软Azure云服务,西门子正式推出Xcelerator as a Service工业软件解决方案,为客户提供更灵活、高效的服务体验。
    的头像 发表于 05-21 10:47 639次阅读

    mc workbench卡在代码生成这一步不动了是什么原因?

    mc workbench卡在代码生成这一步不动了是什么原因
    发表于 03-27 06:52

    STM32WBA Nucleo-64设置主频为100M,发现启动过程中卡死在PWR_VOSR_VOSRDY,为什么?

    使用ST官方的STM32WBA Nucleo-64板子, 当设置主频为100M,发现启动过程中卡死在PWR_VOSR_VOSRDY; 设置主频为16MHz的时候,可以正常完成初始化。 使用的是CodeMx生成的工程 这是啥原因呢?看手册也没找到原因
    发表于 03-14 08:28

    材料价格进一步下降,盈利触底 锂电材料企业如何应对?

    在上游原料价格相对稳定、终端销量有所好转的情况下,季度四大锂电主材价格却出现进一步下跌。
    的头像 发表于 03-01 10:25 951次阅读

    Prevayl的下一步是什么

    Prevayl的下一步是什么2022年,Prevayl推出了SmartWear——这是世界上第款采用临床级心电图增强的高性能服装,其准确性无与伦比。生物识别先驱还创建个功能齐全的
    的头像 发表于 02-17 18:10 458次阅读
    Prevayl的下<b class='flag-5'>一步</b>是什么

    大族封测IPO进程再进一步

    2024年1月17日,深交所向大族封测发出IPO审核意见,标志着这家LED及半导体封测专用设备制造商的上市进程又向前迈进了一步
    的头像 发表于 01-25 14:51 723次阅读

    MediaTek宣布将进一步深化与海信的长期合作关系

    MediaTek 宣布将进一步深化与海信的长期合作关系。海信率先采用了 MediaTek Pentonic 智能电视芯片,显著提升了流媒体内容的画质表现。自 2024 年起,MediaTek AI 超级分辨率技术(AI-SR)将应用于海信全系列智能电视产品。
    的头像 发表于 01-12 09:37 767次阅读

    有什么方法可以进一步提高AD7714的分辨率啊?

    级放大再加给AD7714时,测得人分辨率还要低些。由于是用干电池得到AD7714的输入信号,该信号相对来说很稳定,而且板上的噪声也不是太大。请问各位大虾,还有什么方法可以进一步提高AD7714的分辨率啊?不胜感激!
    发表于 12-25 06:33

    借助人工智能,存储器比重将进一步增加

    SK海力士预测在人工智能(AI)领域,存储器解决方案的比重将进一步增加,可以通过类似AiMX的解决方案部分替代图形处理单元(GPU)。
    发表于 12-04 09:52 412次阅读
    借助人工智能,存储器比重将进<b class='flag-5'>一步</b>增加