
9 _ z: k0 i+ _+ Q4 W w0 I 本应用笔记将指导用户完成基于STM32WL系列微控制器构建特定LoRa®应用程序所需的所有步骤。 . E1 u1 F$ q N. h# m+ T2 b LoRa®是一种无线通信网络,旨在以极低的比特率进行远距离通信,并延长电池供电型传感器的寿命。LoRaWAN®定义了通信和安全协议,此协议会确保与LoRa®网络的互操作性。 3 i4 ^ m7 ?( _3 V' T4 e* g STM32CubeWL MCU软件包中的固件兼容LoRa Alliance®规范协议LoRaWAN®,并具有以下主要特性:
STM32CubeWL MCU软件包的固件基于STM32Cube HAL驱动程序。 & p# l5 L! v8 ?! l o* L1 |; g( [; g 本文提供了有关带STM32WL55JC的NUCLEO-WL55JC开发板(适于高频段的订购代码为NUCLEO-WL55JC1,适于低频段的订购代码为NUCLEO-WL55JC2)和带STM32WL5M的B-WL5M-SUB1连接扩展板的客户应用程序示例。 . X1 U6 [4 F3 Z$ l3 i5 V% @- j1 j 为了充分利用本应用笔记中的信息并创建应用程序,用户必须熟悉 STM32 系列微控制器、LoRa®技术,并了解低功耗管理和任务排序等系统服务。1 o8 e$ A( {" m3 Q: K5 J* p, ? STM32CubeWL在基于Arm® Cortex®-M处理器的STM32WL系列微控制器上运行。 , J) Q" H2 C) I5 |" m9 e" ^ 注意: Arm是Arm Limited(或其子公司)在美国和/或其他地区的注册商标。/ f6 E+ i* d+ t0 F( q STM32CubeWL概述 " q! C( @& D8 K' C, k6 k STM32CubeWL MCU软件包的固件包括以下资源(参见图1): 板级支持包:
STM32WLxx_HAL_Driver 中间件: $ F4 p1 ]. J% U) E - LoRaWAN包含: / C0 q( j u% p4 a1 K/ a2 s
- 包含无线电和radio_driver接口的SubGHz_Phy层中间件 LoRaWAN应用程序:3 c+ y2 ]* ?9 C8 Q' S" U
SubGHz_Phy应用程序:
另外,此应用程序还提供与以下设备的高效系统集成:
若需更多信息,请参见第9节。- r4 c4 ?# n; Z% f ![]() 本节主要介绍SubGHz HAL(未详述其他HAL功能,如定时器或GPIO)。 9 i) U' K5 h( @ SubGHz HAL直接位于sub-GHz无线电外设上方(参见图3)。 # v* l. `' G# m, n P- h- Y6 C SubGHz HAL驱动程序基于简单的一次性面向指令架构(无完整过程)。因此,未定义LL驱动程序。 0 }& H: T, `# |+ a7 j 此SubGHz HAL驱动程序由以下主要部分组成: 7 K3 Y9 Q, t& G" g6 E
由于HAL API主要基于总线服务通过一次性操作发送指令,因此,除了复位/就绪HAL状态外,不使用功能状0 g! t5 B& g3 u/ W 态机。 3.1 SubGHz资源 / p, O3 Z+ X" e% q( [4 j% A- C 初始化无线电时会调用以下HAL SubGHz API: 8 V8 U/ @1 `% B- t8 z
- PWR配置:启用sub-GHz无线电外设的唤醒信号。 - NVIC配置: & a4 t3 N0 @* {2 T( _. S% j$ F ☆ 启用NVIC无线电IRQ中断。 9 Y* q% e1 _ L p# \/ e3 r ☆ 配置sub-GHz无线电中断优先级。 在stm32wlxx_it.c 文件中会调用以下HAL无线电中断: ) d4 X& k$ ^1 d- s) i" b
3.2 SubGHz数据传输 3 P+ ^5 O% w2 s. N; h" R2 t0 n Set 指令操作在轮询模式下使用HAL_SUBGHZ_ExecSetCmd(); API执行。 5 L9 a0 X; g( x# A L6 a O Get Status 操作在轮询模式下使用HAL_SUBGHZ_ExecGetCmd(); API执行。 + r' Z( R N3 L% m4 {+ @: @ 读/写寄存器访问操作在轮询模式下使用以下API执行: ; l: p& q" _7 y' |( `
4 BSP STM32WL板 % s- M5 D h' z) ?; f 本 BSP 驱动程序提供了一系列无线电射频服务管理功能,如射频开关设置和控制、TCXO 设置以及 DC/DC1 [7 N% X7 m" f3 X7 W2 h& X( ] j 设置。 注意: 无线电中间件(SubGHz_Phy)通过radio_board_if.c/h 接口文件连接无线电 BSP。当使用定制用户板时,建议执行一个以下选项: 7 U0 t c2 {; T, h( P# G$ Y) M 3 \5 i. O, v" j/ T5 @+ U: i
- 使用以下信息重命名并更新用户BSP API: 6 y- K" q8 O7 g4 l3 N6 R ☆ 用户射频开关配置和控制(如引脚控制或端口编号) 7 ? g- n+ D$ m6 `$ Y$ q0 ^. H ☆ 用户TCXO配置 ☆ 用户DC/DC配置 - 将IDE项目中的STM32WLxx_Nucleo BSP文件替换为用户BSP文件。 $ W7 F* v& x- b8 R, e
4.1 频段 STM32WL系列上可以使用两种Nucleo板:
如果用户试图在低频段板上运行在868 MHz下编译的固件,预计射频性能会非常差。 ) A1 E, Y! M) z" p- W# U) z 固件不会检查其所在的板的频段。 $ n. l* U/ G0 A7 G, C2 C 4.2 RF开关 : K1 j( L" _# h STM32WL Nucleo板内置一个射频3端口开关(SP3T),使用同一个板即可实现以下模式:
表3. BSP无线电开关 ![]() 表4. RF状态与开关配置 ![]() 产看更多该应用笔记详情,请点击附件下载查看>> ![]() |