你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

CubeMX 创建 WL SubGHz PingPong 应用

[复制链接]
STMCU小助手 发布时间:2022-7-19 17:00
引言
本篇 LAT 介绍使用 CubeMX 创建基于 STM32WL 的 LoRa 应用。
STM32Cube_FW_WL_V1.0.0\Projects\NUCLEO-WL55JC 中的例程都是基于 STM32WL BGA73 的,CubeMX 无法直接创建基于 STM32WL QFN48 的例程。

: n6 H1 l3 L' N' x# Q3 i
同时介绍如何参考STM32Cube_FW_WL_V1.0.0\Projects\NUCLEOWL55JC\Applications\SubGHz_Phy\SubGHz_Phy_PingPong 创建一个 WLEx_PingPong 的例
子。

; K% B* ^4 s' O; ^0 a: y3 T6 d
关于不同 MCU 间的移植可参考
UM1718 11.9 Switching to another MCU
UM1718 15 Tutorial 5: Exporting current project configuration to a compatible MCU
需要提前准备的环境:
微信图片_20220718171612.png
: w) o! l1 b; c# Q/ X+ f; d
1.配置 CubeMX
1.1 配置 CubeMX 并下载 CubeWL

/ ]$ S8 l* |) E5 j
可以使用 CubeMX 默认安装的仓库目录也可以自定义仓库目录,本例使用自定义的仓库目录C:\Users\gongw\STM32Cube\Repository\CubeWL,如下Help=>Updater Settings=>Repository Forlder=>C:\Users\gongw\STM32Cube\Repository\CubeWL=>OK
$ W9 u; [0 L: U
微信图片_20220718171609.png
9 x, R5 F4 s4 Z8 g* k
微信图片_20220718171606.png

1 C8 ?+ s! b6 x& T' q
选择 Manage software installations 中的 Install or remove embedded software packages 下的
“INSTALL / REMOVE”
/ O% w0 W; G' B2 p! @
微信图片_20220718171604.png
+ [0 A+ {2 R& Y
微信图片_20220718171601.png
点Refresh 更新数据库
微信图片_20220718171559.png

* W+ q2 A1 \! |& t6 ^7 Y: E
- _# m0 i% b, F" s3 u
Fresh 结束后,点开 STM32WL 左侧的黑色三角,选中 STM32WL 下版本 1.0.0 的 STM32Cube
MCU Package for STM32WL Series,点 Install Now

) N+ n, W* g0 q8 O6 M: @' W
微信图片_20220718171556.png
/ \+ b% N  m3 ?  E" q  g' ]8 Z7 a
点击 Close

# p! n3 H, N1 p4 c0 o$ W/ ]* t

0 Y: B4 `- e% ]
1.2 CubeMX 新建项目

4 k4 I: v- t) f% i' x+ V" d5 [
打开 STM32CubeMX,在 New Project 下有三中选择, 请根据需求选择 New Project 的方式!
微信图片_20220718171554.png
. e: u" ?4 n( Z; X# c- k7 `
1.2.1 Start My project from MCU
6 Y0 }0 F/ s. P( ~0 o( n, {) C0 Y8 }) x
第 1 种可使用于所有的 WL 产品,只能生成和配置的用户自定义(User Defined)的LoRaWAN/SigFox/SUBGHZ 应用,不能生成 CubeWL 中 AT_Slave/EndNode/PingPong demo

& w7 j$ x" B! x7 T9 T, y
1.2.2 Start My project from BOARD
第 2 种适用于 NUCLEO-WL55JC1 和 NUCLEO-WL55JC1 两种 Demo 板,只能生成和配置的用户自定义(User Defined)的LoRaWAN/SigFox/SUBGHZ 应用,不能生成 CubeWL 中AT_Slave/EndNode/PingPong demo

4 r$ d0 W) \! Z) u
1.2.3 Start My project from EXAMPLES
第 3 种适用于生成 CubeWL 中 NUCLEO-WL55JC1 和 NUCLEO-WL55JC1 的 Examples,可生成和配置 CubeWL 中AT_Slave/EndNode/PingPong demo
, q( m- s" f6 D4 M  |- p
微信图片_20220718171551.png

' @+ l9 I  `# q+ W! C
微信图片_20220718171548.png
6 }: _! a+ l( ]2 x! Z- s
微信图片_20220718171539.png
$ I. Z) f7 p& v8 V* o1 ]) ~
选择 NUCLEO-WL55JC 对应的 STM32WL55JC
微信图片_20220718171537.png
) }4 H/ A3 s% a. ]6 O  T
微信图片_20220718171534.png
微信图片_20220718171531.png
微信图片_20220718171522.png

. ?3 ]2 [4 l& v6 R- ]8 ?7 x- j$ E
微信图片_20220718171519.png
) L# F4 Z6 }% t3 E0 a3 R$ A' B; Y0 Q, f
1.3 CubeMX 导入参考项目
2 Y7 ?$ s& }4 K
微信图片_20220718171517.png
$ h1 {9 A. o+ f6 W; G
微信图片_20220718171514.png
微信图片_20220718171509.png
6 f" W- q. o3 X& H0 D
微信图片_20220718171505.png

8 F1 H0 @- R, M0 v. m0 _/ w' b
微信图片_20220718171456.png
微信图片_20220718171451.png

0 \" E: B6 F1 f7 A
此时再查看 File =>Import Project 选项,变为灰色,表示新项目已被配置,不能再 import 参考项目。

, }. \; i- S: Q$ T" F) x
微信图片_20220718171448.png

: H9 c$ \" l; L: z+ b& @" w
1.4 CubeMX 配置项目
: @% n' o- H, U( q6 g
1.4.1 CubeMX 配置 Project Manager
选择 Project Manager
1.4.1.1 配置 Project
选择右侧 Project 并配置如下:
微信图片_20220718171440.png
注意:
通过 Browse 选择 Project 保存的目录
⚫ 项目名称 WLEx_AT_Slave 创建在STM32Cube_FW_WL_V1.0.0\Projects\NUCLEO-
WL55JC\Applications\LoRaWAN 下,和LoRaWAN_End_Node 同级目录,即
C:\Users\gongw\STM32Cube\Repository\CubeWL\STM32Cube_FW_WL_V1.0.0\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\WLEx_PingPong,以 便于与 LoRaWAN_End_Node 进行比较

& l* j( f9 {. |6 ]) t6 C2 H
⚫ 配置 Application Structure 为 Advanced 与 basic 有什么区别?
Application Structure 为 Advanced 时目录结构分类分级目录更清晰。
Application Structure 为 Basic 时,所有的*.h 都在 WLEx_PingPong\Inc 目录下,所有的*.c 在
WLEx_PingPong\Src 目录下。
3 r, C. `8 e3 g) F7 z6 P2 C1 r. }
一旦生成过一次代码后目录结构就无法更改了!!!
微信图片_20220718171436.png
选择右侧 Code Generator 并配置如下,选择”Add necessary library files as reference in the toolchain project configuration file “,这样将不生成 Drivers 和 Middlewares 目录。
选择 Generated files 下的“Generate peripheral initialization as a pair of ‘.c/.h’ per peripheral”
微信图片_20220718171433.png
微信图片_20220718171431.png
注意:
⚫ Copy all used library Package (如复制 Drivers\STM32WLxx_HAL_Driver 下的所有驱动)
WLEx_PingPong 复制到其他目录下,还能工作
, e4 K9 O8 H; ^& J3 E, R
⚫ Copy only the necessary library files(如仅复制 Drivers\STM32WLxx_HAL_Driver 下使用到的驱动)WLEx_PingPong复制到其他目录下,还能工作

0 C# {% |8 J3 L+ d& n( S
⚫ Add necessary library files as reference in the toolchain project configuration file(不生成 Drivers 和Middlewares 目录,仅参考Drivers\STM32WLxx_HAL_Driver 下的所有驱动)
WLEx_PingPong 复制到其他目录下,不能工作

+ V$ h( i- e$ j  d  Q! {
参考 UM1718 4.9 Project Manager view
微信图片_20220718171428.png
微信图片_20220718171425.png
微信图片_20220718171418.png

- V8 m# S$ V* M- o8 M
3. 配置外设
2.1 使能外设

! j. h' a, C( m5 }+ m' F# @; K
2.1.1 Middleware=>SUBGHZ_PHY 使能
微信图片_20220718171415.png
2.1.2 Timers=>RTC 使能
Timers=>RTC=>勾选 Activate Clock Source
微信图片_20220718171410.png
2.2 RTC
微信图片_20220718171412.png
Clock Configuration => RTC Clock Mux=>LSE
在 Clock Configuration 中检查 RTC Clock Mux 是否配置为 LSE
微信图片_20220718171405.png
Timer =>RTC=>Users Constants
微信图片_20220718171401.png
微信图片_20220718171355.png
微信图片_20220718171344.png
Timer =>RTC=>Parameter Settings
微信图片_20220718171340.png
Timer =>RTC=>NVIC Settings
微信图片_20220718171337.png
Middleware => LORAWAN => Platform Settings => Timer Server => RTC
微信图片_20220718171335.png

2 A" v7 k# i9 g+ x* c* c) l$ l
2.3 DebugLine
2.3.1Middleware => SUBGHZ_PHY => SubGHz_Phy middleware =>
radio_board_if =>Actovate Debug Line

, |# k4 [, D1 g0 n. t! G4 E
微信图片_20220718171332.png

' \( }% i9 a0 H) W* F* `
2.3.2. Platform Settings => VCOM => USART2
微信图片_20220718171329.png
4.3.3. Clock Configuration => UART2 Clock Mux => SYSCLK
微信图片_20220718171327.png
Platform Settings => VCOM => LPUART1
微信图片_20220718171324.png

7 Y5 B. x- e* b2 D+ V3 w
2.4 System Core => GPIO (RF SW CTRL / BUTTON / LED)
3 \+ h3 n! w- K' l; l. U
2.4.1 RF_CTRL
System Core => GPIO => PA8 (customizable)
微信图片_20220718171321.png
微信图片_20220718171318.png
微信图片_20220718171315.png
Platform Settings => Radio => RF SW CTRL
微信图片_20220718171312.png

% J. A7 |$ N, z5 T: P
2.4.2 LED
9 M# L  D1 t* W" A
System Core => GPIO => PB2 (customizable)
微信图片_20220718171310.png
Platform Settings => Board resources => LED
微信图片_20220718171306.png
/ G4 |6 K1 u+ _& s2 V
3 STM32WL Templates Patches for CubeMX
" s/ w7 Z6 e6 b9 ?; H

% c' v1 G+ N) P
STM32WL Templates 在如下目录,如需要可自行定制自己的 Templates
微信图片_20220718172940.png
针对不同的客户定制化的板子,硬件外设配置不一致,客户可根据需要定制化自己的外设配置。
从 NUCLEO-WL55JC(BGA73) 移植到STM32WLExCxUx(QFN48)定制化的板子上,射频开关(RF SW CTRL),按键(BUTTON), LED 的配置会不一样,可能导致编译错误,如想生成的代码不会产生编译错误,需要编辑一下 STM32WL的 template。
" C. t& G' `9 G9 ~! [& F
3.1 CubeMX template patches for stm32wl
请参考
微信图片_20220718171302.png
  x7 O% [2 s2 W0 q/ t
3.2 CubeMX Updates from v6.1.1 to v6.2.0
微信图片_20220718171257.png
微信图片_20220718171254.png
微信图片_20220718171248.png
! a/ b3 W- s  ^- j4 L# Q
: ]. y5 i8 a7 V! {7 P, ^7 A) C( g7 y
4.验证
4.1 参考工程* f4 B5 {5 U5 ^' X6 |6 r
微信图片_20220718171244.png
4.2 编译并下载
9 |2 d, _( H. f/ `, s
用 IAR 打开STM32Cube_FW_WL_V1.0.0\Projects\NUCLEOWL55JC\Applications\LoRaWAN\WLEx_PingPong\EWARM\Project.eww

( y4 {' g$ ^* ^8 |" l7 z( k
如果 IAR 之前已经打开了 WLEx_PingPong,在每次重新生成代码时都如有如下提示,选择“Yes to All”
微信图片_20220718171240.png
按 F7 或选择 Project=>Make(F7)来编译工程,如果编译无错误,选择Project=>Download=>Download Active Application 下载WLEx_PingPong 应用
: W3 t/ }4 g, S: ~& @1 m
微信图片_20220718171527.png
微信图片_20220718171529.png
微信图片_20220718171507.png
赞 收藏 1 评论0 发布时间:2022-7-19 17:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版