实战经验|一步一步创建STM32WBABLE_Custom工程

原创 STM32单片机 2023-11-30 13:16


关键词: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 工程,实际用户在配置自己的项目时可以自行根据自己的项目需求而做相应的修改。


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


STM32单片机 ST MCU (产品+工具+资料+技术+市场+活动)x 您的关注x您的支持 = STM32 单片机蝴蝶乐园
评论 (0)
  • 后摄像头是长这个样子,如下图。5孔(D-,D+,5V,12V,GND),说的是连接线的个数,如下图。4LED,+12V驱动4颗LED灯珠,给摄像头补光用的,如下图。打开后盖,发现里面有透明白胶(防水)和白色硬胶(固定),用合适的工具,清理其中的胶状物。BOT层,AN3860,Panasonic Semiconductor (松下电器)制造的,Cylinder Motor Driver IC for Video Camera,如下图。TOP层,感光芯片和广角聚焦镜头组合,如下图。感光芯片,看着是玻
    liweicheng 2025-05-07 23:55 256浏览
  • 二位半 5线数码管的驱动方法这个2位半的7段数码管只用5个管脚驱动。如果用常规的7段+共阳/阴则需要用10个管脚。如果把每个段看成独立的灯。5个管脚来点亮,任选其中一个作为COM端时,另外4条线可以单独各控制一个灯。所以实际上最多能驱动5*4 = 20个段。但是这里会有一个小问题。如果想点亮B1,可以让第3条线(P3)置高,P4 置低,其它阳极连P3的灯对应阴极P2 P1都应置高,此时会发现C1也会点亮。实际操作时,可以把COM端线P3设置为PP输出,其它线为OD输出。就可以单独控制了。实际的驱
    southcreek 2025-05-07 15:06 377浏览
  • 文/郭楚妤编辑/cc孙聪颖‍相较于一众措辞谨慎、毫无掌舵者个人风格的上市公司财报,利亚德的财报显得尤为另类。利亚德光电集团成立于1995年,是一家以LED显示、液晶显示产品设计、生产、销售及服务为主业的高新技术企业。自2016年年报起,无论业绩优劣,董事长李军每年都会在财报末尾附上一首七言打油诗,抒发其对公司当年业绩的感悟。从“三年翻番顺大势”“智能显示我第一”“披荆斩棘幸从容”等词句中,不难窥见李军的雄心壮志。2012年,利亚德(300296.SZ)在深交所创业板上市。成立以来,该公司在细分领
    华尔街科技眼 2025-05-07 19:25 334浏览
  • UNISOC Miracle Gaming奇迹手游引擎亮点:• 高帧稳帧:支持《王者荣耀》等主流手游90帧高画质模式,连续丢帧率最高降低85%;• 丝滑操控:游戏冷启动速度提升50%,《和平精英》开镜开枪操作延迟降低80%;• 极速网络:专属游戏网络引擎,使《王者荣耀》平均延迟降低80%;• 智感语音:与腾讯GVoice联合,弱网环境仍能保持清晰通话;• 超高画质:游戏画质增强、超级HDR画质、游戏超分技术,优化游戏视效。全球手游市场规模日益壮大,游戏玩家对极致体验的追求愈发苛刻。紫光展锐全新U
    紫光展锐 2025-05-07 17:07 268浏览
  • 硅二极管温度传感器是一种基于硅半导体材料特性的测温装置,其核心原理是利用硅二极管的电学参数(如正向压降或电阻)随温度变化的特性实现温度检测。以下是其工作原理、技术特点及典型应用:一、工作原理1、‌PN结温度特性‌硅二极管由PN结构成,当温度变化时,其正向电压 VF与温度呈线性负相关关系。例如,温度每升高1℃,VF约下降2 mV。2、‌电压—温度关系‌通过jing确测量正向电压的微小变化,可推算出环境温度值。部分型号(如SI410)在宽温域内(如1.4 K至475 K)仍能保持高线性度。
    锦正茂科技 2025-05-09 13:52 95浏览
  • 随着智能驾驶时代到来,汽车正转变为移动计算平台。车载AI技术对存储器提出新挑战:既要高性能,又需低功耗和车规级可靠性。贞光科技代理的紫光国芯车规级LPDDR4存储器,以其卓越性能成为国产芯片产业链中的关键一环,为智能汽车提供坚实的"记忆力"支持。作为官方授权代理商,贞光科技通过专业技术团队和完善供应链,让这款国产存储器更好地服务国内汽车厂商。本文将探讨车载AI算力需求现状及贞光科技如何通过紫光国芯LPDDR4产品满足市场需求。 车载AI算力需求激增的背景与挑战智能驾驶推动算力需求爆发式
    贞光科技 2025-05-07 16:54 184浏览
  • 飞凌嵌入式作为龙芯合作伙伴,隆重推出FET-2K0300i-S全国产自主可控工业级核心板!FET-2K0300i-S核心板基于龙芯2K0300i工业级处理器开发设计,集成1个64位LA264处理器,主频1GHz,提供高效的计算能力;支持硬件ECC;2K0300i还具备丰富的连接接口USB、SDIO、UART、SPI、CAN-FD、Ethernet、ADC等一应俱全,龙芯2K0300i支持四路CAN-FD接口,具备良好的可靠性、实时性和灵活性,可满足用户多路CAN需求。除性价比超高的国产处理器外,
    飞凌嵌入式 2025-05-07 11:54 62浏览
  • 这款无线入耳式蓝牙耳机是长这个样子的,如下图。侧面特写,如下图。充电接口来个特写,用的是卡座卡在PCB板子上的,上下夹紧PCB的正负极,如下图。撬开耳机喇叭盖子,如下图。精致的喇叭(HY),如下图。喇叭是由电学产生声学的,具体结构如下图。电池包(AFS 451012  21 12),用黄色耐高温胶带进行包裹(安规需求),加强隔离绝缘的,如下图。451012是电池包的型号,聚合物锂电池+3.7V 35mAh,详细如下图。电路板是怎么拿出来的呢,剪断喇叭和电池包的连接线,底部抽出PCB板子
    liweicheng 2025-05-06 22:58 490浏览
  • Matter协议是一个由Amazon Alexa、Apple HomeKit、Google Home和Samsung SmartThings等全球科技巨头与CSA联盟共同制定的开放性标准,它就像一份“共生契约”,能让原本相互独立的家居生态在应用层上握手共存,同时它并非另起炉灶,而是以IP(互联网协议)为基础框架,将不同通信协议下的家居设备统一到同一套“语义规则”之下。作为应用层上的互通标准,Matter协议正在重新定义智能家居行业的运行逻辑,它不仅能向下屏蔽家居设备制造商的生态和系统,让设备、平
    华普微HOPERF 2025-05-08 11:40 240浏览
  • 温度传感器的工作原理依据其类型可分为以下几种主要形式:一、热电阻温度传感器利用金属或半导体材料的电阻值随温度变化的特性实现测温:l ‌金属热电阻‌(如铂电阻 Pt100、Pt1000):高温下电阻值呈线性增长,稳定性高,适用于工业精密测温。l ‌热敏电阻‌(NTC/PTC):NTC 热敏电阻阻值随温度升高而下降,PTC 则相反;灵敏度高但线性范围较窄,常用于电子设备温控。二、热电偶传感器基于‌塞贝克效应‌(Seebeck effect):两种不同
    锦正茂科技 2025-05-09 13:31 88浏览
  • 在过去的很长一段时间里,外卖市场呈现出美团和饿了么双寡头垄断的局面。美团凭借先发优势、强大的地推团队以及精细化的运营策略,在市场份额上长期占据领先地位。数据显示,截至2024年上半年,美团外卖以68.2%的市场份额领跑外卖行业,成为当之无愧的行业老大。其业务广泛覆盖,从一线城市的繁华商圈到二三线城市的大街小巷,几乎无处不在,为无数消费者提供便捷的外卖服务。饿了么作为阿里本地生活服务的重要一环,依托阿里强大的资金和技术支持,也在市场中站稳脚跟,以25.4%的份额位居第二。尽管市场份额上与美团有一定
    用户1742991715177 2025-05-06 19:43 56浏览
我要评论
0
1
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦