在 STM32WB 双核蓝牙 MCU 开发中,32.768kHz LSE 低速外部晶振是 BLE 协议栈的标配时钟源,负责 RF 唤醒与 RTC 计时。但实际样机开发中,常遇到漏贴 LSE、LSE 损坏、GPIO 引脚冲突等问题,导致无法正常跑通 BLE 功能。
ST 官方 LAT1215 应用笔记给出了应急解决方案:在无 LSE 的情况下,使用 HSE 高速外部晶振替代,实现 BLE 正常广播、连接与通信。本文基于该笔记,以实操步骤带你完成全套配置,快速解决无 LSE 的 BLE 调试难题。
资料获取:【应用笔记】LAT1215 如何配置STM32WB在没有LSE时运行BLE应用程序
1. LSE 对 STM32WB BLE 的核心作用
STM32WB 的 BLE 射频唤醒(RF Wakeup)与 RTC 模块,默认依赖 LSE 提供时钟,核心优势:
- 低功耗模式下持续工作,支持 Stop/Standby 等深休眠模式;
- 时钟精度高、无需校准,保证 BLE 协议栈时序稳定;
- 功耗极低,适配电池供电的蓝牙设备。
而HSE 作为替代方案的局限:
- 仅在 Run/Sleep 模式下工作,无法进入深低功耗模式,整机功耗大幅升高;
- 时钟稳定性弱于 LSE,需软件校准;
- 仅适合样机调试、不计功耗的场景使用。
2. 无 LSE 运行 BLE 的适用场景
该配置为应急方案,仅适用于以下场景:
- 样机硬件遗漏焊接 LSE 晶振;
- 已生产样机的 LSE 晶振故障 / 不匹配;
- PC13 等 GPIO 占用导致 LSE 起振异常;
- 调试阶段、不关注设备功耗的场景。
3. 基于 CubeMX 的完整配置步骤
本文基于CubeMX 6.6.1 + CubeWB V1.14.1,以官方BLE_p2pServer例程为模板操作:
3.1 打开官方 BLE 例程
打开路径:STM32Cube_FW_WB_V1.14.1\Projects\P-NUCLEO-WB55.Nucleo\Applications\BLE\BLE_p2pServer\BLE_p2pServer.ioc
3.2 关闭 LSE 时钟配置
进入Pinout & Configuration → System Core → RCC:
- Low Speed Clock (LSE) 选择Disable,彻底关闭 LSE。
3.3 关闭低功耗模式 LPM
进入Middleware → STM32_WPAN → Configuration:
- Generic parameters 中,CFG_LPM_SUPPORT 设置为 Disabled(禁用低功耗,保证 HSE 持续工作);
- Application parameters 中配置 RTC 预分频:
- CFG_RTC_ASYNCH_PRESCALER = 127
- CFG_RTC_SYNCH_PRESCALER = 7812
3.4 时钟树配置(核心步骤)
进入Clock Configuration界面,修改两项关键时钟源:
- RTC/LCD Source Mux:选择HSE_RTC;
- RFWKP Source Mux:选择HSE。
将 RF 唤醒时钟与 RTC 时钟全部切换为 HSE 提供。
3.5 生成工程代码
点击GENERATE CODE,重新生成 MDK/STM32CubeIDE 工程。
3.6 修改 app_conf.h 关键宏定义
打开Core\Inc\app_conf.h,完成两项关键修改:
- 配置 BLE LSE 校准(使用 HSE 需开启校准):
#define CFG_BLE_LSE_SOURCE (SHCI_C2_BLE_INIT_CFG_BLE_LSE_CALIB | SHCI_C2_BLE_INIT_CFG_BLE_LSE_OTHER_DEV)
- 修改 TS_TICK 计时值(适配 HSE 时钟):
#define CFG_TS_TICK_VAL DIVR((CFG_RTCCLK_DIV * 1000000), (HSE_VALUE/32))
#define CFG_TS_TICK_VAL_PS DIVR(((uint64_t)CFG_RTCCLK_DIV * 1e12), (uint64_t)(HSE_VALUE/32))
3.7 校验时钟配置(确保生效)
- 检查 RF 唤醒时钟:打开
Core\Src\main.c的PeriphCommonClock_Config函数,确认:RFWakeUpClockSelection = RCC_RFWKPCLKSOURCE_HSE_DIV1024 - 检查 RTC 时钟源:打开
Core\Src\stm32wbxx_hal_msp.c的HAL_RTC_MspInit函数,确认:RTCClockSelection = RCC_RTCCLKSOURCE_HSE_DIV32
4. BLE 功能验证
5. 关键注意事项
- 功耗显著升高:禁用 LSE+LPM 后,芯片无法进入深休眠模式,待机电流大幅上升,仅适合调试,不适合量产电池设备。
- 仅为应急方案:量产产品必须焊接 LSE 晶振,保证低功耗与时序稳定性。
- 校准不可省略:HSE 作为时钟源时,必须开启
CFG_BLE_LSE_CALIB校准,否则 BLE 通信易出现丢包、断连。 - 开启 Debug Trace 时,LPM 会自动禁用,无需重复配置。
基于 ST LAT1215 应用笔记的配置方案,可快速实现STM32WB 在无 LSE 硬件下运行 BLE,完美解决样机调试、硬件异常的应急需求。
核心配置逻辑为:关闭 LSE→禁用 LPM→时钟源切换 HSE→软件校准,全程通过 CubeMX 图形化配置 + 少量宏定义修改即可完成。需牢记该方案仅适用于调试场景,量产产品务必恢复 LSE 硬件设计,保证低功耗与 BLE 稳定性。
119