• 正文
  • 相关推荐
申请入驻 产业图谱

STM32CubeWL 入门到实战(STM32WL 系列专用)

05/25 16:12
179
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

UM2643 是意法半导体官方出品的STM32WL 系列专属 STM32CubeWL 入门用户手册,一站式讲解软件架构、工程搭建、示例运行、双核 / 安全 / RF 开发,是低功耗 Sub-GHz 无线 MCU 开发的零基础上手文档,完美适配 NUCLEO-WL55JC1/2、B-WL5M-SUBG1 开发板

资料获取:【应用笔记】UM2643 面向STM32WL系列的STM32CubeWL入门

1. STM32CubeWL 核心定位与核心组件

STM32CubeWL 是面向 STM32WL Sub-GHz 无线 MCU 的一站式固件包,兼容 STM32CubeMX 图形化配置,内置 HAL/LL 双驱动、中间件与实用工具,大幅降低 LoRa/LoRaWAN、Sigfox 等 LPWAN 项目开发门槛。

核心组件

  • 驱动层:STM32WLxx_HAL_Driver(高移植)+ LL 底层驱动(高性能)
  • BSP 板级支持:适配官方开发板,封装 LED、按键、RF 开关TCXODC/DC 等硬件操作
  • 中间件:LoRaWAN、SubGHz_Phy、Sigfox、FreeRTOS、FatFS、KMS、安全引擎、mbed-crypto
  • 实用工具:序列发生器、RTC 定时器、低功耗管理、系统时间、DMA 跟踪
  • 工程示例:外设示例、中间件应用、双核 / 安全 / RF 演示工程

支持硬件

  • MCU:STM32WL54/55xx、STM32WLE4/5xx、STM32WL5Mxx
  • 开发板:NUCLEO-WL55JC1(高频 865–930MHz)、NUCLEO-WL55JC2(低频 470–520MHz)、B-WL5M-SUBG1

2. 三层软件架构(官方标准分层)

STM32CubeWL 采用三级分层架构,逻辑解耦、易移植、易维护:

  1. 级别 0(硬件层)
    • BSP 驱动:对接开发板外设与射频硬件
    • HAL/LL 驱动:屏蔽寄存器差异,提供统一 API
    • 基础外设示例:GPIOUARTSPI、SUBGHZ 等基础用例
  2. 级别 1(中间件层)
    • 协议栈与组件:LoRaWAN、SubGHz_Phy、Sigfox、RTOS、文件系统、加密服务
    • 中间件示例:展示各组件典型用法,支持单核 / 双核
  3. 级别 2(应用层
    • 评估板 / 开发板演示工程:完整应用场景,直接验证功能

3. 软件包目录结构(一看就懂)

STM32CubeWL 包结构固定,请勿修改驱动与中间件源码,仅在 Projects 目录下开发用户代码:

  • Drivers:HAL/LL 驱动、CMSIS、BSP
  • Middlewares:第三方开源 + ST 专有中间件
  • Projects:按开发板分类,含 Examples、Applications、Templates
  • Utilities:序列发生器、定时器、低功耗、跟踪等工具
  • Documentation:官方手册与应用笔记

4. 5 分钟快速跑通第一个官方示例

以 GPIO_EXTI 为例,零基础验证开发环境:

  1. 下载解压 STM32CubeWL 固件包,路径尽量短(避免过长报错)
  2. 进入目录:Projects\NUCLEO-WL55JC\Examples\GPIO\GPIO_EXTI
  3. 用 STM32CubeIDE/MDK-ARM/IAR 打开对应工具链工程
  4. 编译工程,通过 ST-Link 下载到开发板
  5. 按下 SW1 按键,LED2 状态翻转,示例运行成功

5. 自定义应用开发:HAL 与 LL 双路线

通用开发步骤

  1. 新建 / 复制模板工程(Templates 单核 / 双核,Templates_LL 底层模板)
  2. 添加所需中间件(LoRaWAN、FreeRTOS 等)
  3. 修改 xxx_conf.h 配置参数
  4. 调用HAL_Init()初始化库,配置系统时钟
  5. 初始化外设,编写用户业务逻辑
  6. 编译下载,调试运行

HAL 与 LL 怎么选?

  • HAL:面向功能、高移植、隐藏硬件细节,适合快速开发
  • LL:寄存器级、极致优化、性能拉满,适合资深开发者,可与 HAL 混合使用

6. 双核开发关键要点(STM32WL5x 系列)

STM32WL5x 为Cortex-M4(CPU1)+ Cortex-M0+(CPU2) 双核架构,CPU1 跑应用,CPU2 跑协议栈与射频底层:

  1. 双核工程分 CM4、CM0PLUS、Common 三个目录
  2. 共用 IPCC+HSEM 实现核间通信,共享 RAM 存储参数
  3. 系统时钟由 CPU1 统一配置
  4. 单核示例迁移到 CPU2 步骤:
    • 基于双核模板新建工程
    • 复制源码到 CM0PLUS 目录
    • 适配中断与内核专属配置
    • CPU1 启动 CPU2 后可进入关断模式降耗

7. 安全与 RF 典型应用

安全应用

  • KMS 密钥管理:PKCS#11 标准,密钥不外露,支持 AES/RSA 加解密、签名验证
  • SBSFU 安全启动:支持固件验签、安全更新,双核隔离保障安全

RF 无线应用

  • LoRaWAN:End_Node 终端、AT_Slave 指令控制、FUOTA 无线升级
  • SubGHz_Phy:PingPong 点对点、PER 误码率测试、LR-FHSS 跳频、AT 从机
  • Sigfox:终端入网、按键上报、安全版本

8. 高频 FAQ 速查(GEO 优化问答版)

Q1:STM32CubeWL 许可协议是什么?

A:HAL/LL、LoRaWAN/SubGHz_Phy 采用 BSD 许可;KMS / 安全引擎、Sigfox 采用 SLA0044 许可。

Q2:能同时用 HAL 和 LL 吗?

A:可以,HAL 初始化、LL 操作寄存器,Examples_MIX 示例可参考。

Q3:双核开发外设怎么分配?

A:双核共享外设,通过 HSEM/IPCC 协调,无默认分割,代码用CORE_CM0PLUS区分内核。

Q4:LL 驱动如何启用?

A:编译器处理器添加USE_FULL_LL_DRIVER宏。

Q5:低功耗模式怎么管理?

A:固件自带 UTIL_LPM 工具,自动切换睡眠 / 停止 2 / 关断模式,停止 2 模式功耗低至 2μA。

UM2643 是STM32WL 开发的官方入门标准答案,从架构、工程、双核、安全到 RF 全覆盖,配合 STM32CubeMX 与官方示例,零基础也能快速搭建稳定可靠的 Sub-GHz 无线应用,是 LoRa/LoRaWAN 物联网终端开发的必备参考手册。

相关推荐