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

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 的例程。

6 m% p; Y1 K6 U8 ~* U& D
同时介绍如何参考STM32Cube_FW_WL_V1.0.0\Projects\NUCLEOWL55JC\Applications\SubGHz_Phy\SubGHz_Phy_PingPong 创建一个 WLEx_PingPong 的例
子。
! Q; n0 e6 d5 v  q
关于不同 MCU 间的移植可参考
UM1718 11.9 Switching to another MCU
UM1718 15 Tutorial 5: Exporting current project configuration to a compatible MCU
需要提前准备的环境:
微信图片_20220718171612.png
: ]8 {! E/ Q  W/ b# r& i: W4 g- J
1.配置 CubeMX
1.1 配置 CubeMX 并下载 CubeWL

8 e0 h4 Z+ s* L  f
可以使用 CubeMX 默认安装的仓库目录也可以自定义仓库目录,本例使用自定义的仓库目录C:\Users\gongw\STM32Cube\Repository\CubeWL,如下Help=>Updater Settings=>Repository Forlder=>C:\Users\gongw\STM32Cube\Repository\CubeWL=>OK

. Y. y8 {* \- B; q; k6 z0 n
微信图片_20220718171609.png

2 Q: ]3 u3 l+ G3 B% J3 v
微信图片_20220718171606.png

  a; D6 a2 w% \! P8 x! W4 L
选择 Manage software installations 中的 Install or remove embedded software packages 下的
“INSTALL / REMOVE”

/ c  ?. F7 ?' E: k1 V' U
微信图片_20220718171604.png
) J2 S. K; E: F/ w4 Q: J) m9 Y
微信图片_20220718171601.png
点Refresh 更新数据库
微信图片_20220718171559.png
3 v9 i- R! L7 m# n3 L" t

4 x4 e! z8 J4 S6 t; x
Fresh 结束后,点开 STM32WL 左侧的黑色三角,选中 STM32WL 下版本 1.0.0 的 STM32Cube
MCU Package for STM32WL Series,点 Install Now

, I3 f- h* ]" W
微信图片_20220718171556.png
. q! p8 ^1 a+ [4 Z5 @
点击 Close

0 N) v$ {9 O" z; _  \& y5 d9 {4 ?# X9 [

! M0 G: M% F1 L( D% ]7 W
1.2 CubeMX 新建项目
- Q  K3 F: E  _) ~. b. E
打开 STM32CubeMX,在 New Project 下有三中选择, 请根据需求选择 New Project 的方式!
微信图片_20220718171554.png
; j  _) B% b+ E& \8 E
1.2.1 Start My project from MCU

5 B. H' B; c4 Q$ b/ h5 S% V, Q
第 1 种可使用于所有的 WL 产品,只能生成和配置的用户自定义(User Defined)的LoRaWAN/SigFox/SUBGHZ 应用,不能生成 CubeWL 中 AT_Slave/EndNode/PingPong demo

& O& `- p" N9 t" p7 S/ V! u; m
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

0 w% a+ E4 p& j$ O5 t/ D: |# `6 z
1.2.3 Start My project from EXAMPLES
第 3 种适用于生成 CubeWL 中 NUCLEO-WL55JC1 和 NUCLEO-WL55JC1 的 Examples,可生成和配置 CubeWL 中AT_Slave/EndNode/PingPong demo

& H8 V6 J9 m3 s
微信图片_20220718171551.png

! \+ j8 B2 ~1 m0 q/ }& \3 V
微信图片_20220718171548.png
5 Y( c* m# w( X( W; |6 I$ }, A
微信图片_20220718171539.png

6 y- J& z3 r7 c* N
选择 NUCLEO-WL55JC 对应的 STM32WL55JC
微信图片_20220718171537.png

" l# Z8 o! o( I5 |" G) G4 ?6 X
微信图片_20220718171534.png
微信图片_20220718171531.png
微信图片_20220718171522.png
2 D0 H' b6 T0 {2 ?$ T; z
微信图片_20220718171519.png

3 L: w$ g7 k  {; ?/ a+ h1 Q( X
1.3 CubeMX 导入参考项目

( u% c* z8 u. p: v
微信图片_20220718171517.png
2 H/ ]+ r& f- X
微信图片_20220718171514.png
微信图片_20220718171509.png

5 }( G' H! F0 X5 Q' v
微信图片_20220718171505.png
4 r1 f  ]4 b2 b9 j. D
微信图片_20220718171456.png
微信图片_20220718171451.png

6 q9 }0 W0 }: e" a3 c% c/ c
此时再查看 File =>Import Project 选项,变为灰色,表示新项目已被配置,不能再 import 参考项目。

: u6 y7 C/ E" ?
微信图片_20220718171448.png

: ?* D3 U1 ~6 s" h' _
1.4 CubeMX 配置项目
5 r, H( x: C  h! E* \% A6 P5 P- z
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 进行比较

1 j% z3 s" e. b3 i. ^2 [' ~
⚫ 配置 Application Structure 为 Advanced 与 basic 有什么区别?
Application Structure 为 Advanced 时目录结构分类分级目录更清晰。
Application Structure 为 Basic 时,所有的*.h 都在 WLEx_PingPong\Inc 目录下,所有的*.c 在
WLEx_PingPong\Src 目录下。

4 z1 F5 y* U; L5 |, A
一旦生成过一次代码后目录结构就无法更改了!!!
微信图片_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 复制到其他目录下,还能工作

1 p6 D) D9 b' p* T* N
⚫ Copy only the necessary library files(如仅复制 Drivers\STM32WLxx_HAL_Driver 下使用到的驱动)WLEx_PingPong复制到其他目录下,还能工作

- u! e+ J! ~! @1 r8 W* @" p9 G
Add necessary library files as reference in the toolchain project configuration file(不生成 Drivers 和Middlewares 目录,仅参考Drivers\STM32WLxx_HAL_Driver 下的所有驱动)
WLEx_PingPong 复制到其他目录下,不能工作
* J1 V8 N% |/ E3 @) |
参考 UM1718 4.9 Project Manager view
微信图片_20220718171428.png
微信图片_20220718171425.png
微信图片_20220718171418.png
. r2 D: B7 s2 \" `
3. 配置外设
2.1 使能外设

0 `- C' Y2 R" c7 Z
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

* z5 h* [% u* m* z1 T7 R" V
2.3 DebugLine
2.3.1Middleware => SUBGHZ_PHY => SubGHz_Phy middleware =>
radio_board_if =>Actovate Debug Line

3 @. L& D8 c2 L& z
微信图片_20220718171332.png
- @2 k# }& |- S: X" L
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
& l9 @5 q: x1 m: J7 O
2.4 System Core => GPIO (RF SW CTRL / BUTTON / LED)
( L" b( T1 p) U) I
2.4.1 RF_CTRL
System Core => GPIO => PA8 (customizable)
微信图片_20220718171321.png
微信图片_20220718171318.png
微信图片_20220718171315.png
Platform Settings => Radio => RF SW CTRL
微信图片_20220718171312.png

2 b3 {0 E) _' J; h+ Z4 P8 [
2.4.2 LED  g' l. g# \3 s# a' q4 {' F0 |
System Core => GPIO => PB2 (customizable)
微信图片_20220718171310.png
Platform Settings => Board resources => LED
微信图片_20220718171306.png

5 l' r  ]4 S4 u1 Y' [  n
3 STM32WL Templates Patches for CubeMX7 x' U. E, [' Q& O6 }
4 r+ _0 z' Q0 m
STM32WL Templates 在如下目录,如需要可自行定制自己的 Templates
微信图片_20220718172940.png
针对不同的客户定制化的板子,硬件外设配置不一致,客户可根据需要定制化自己的外设配置。
从 NUCLEO-WL55JC(BGA73) 移植到STM32WLExCxUx(QFN48)定制化的板子上,射频开关(RF SW CTRL),按键(BUTTON), LED 的配置会不一样,可能导致编译错误,如想生成的代码不会产生编译错误,需要编辑一下 STM32WL的 template。

/ [/ u5 H- o( |8 Z( p. }1 d
3.1 CubeMX template patches for stm32wl
请参考
微信图片_20220718171302.png
9 q5 ^1 g; m, a5 E9 n$ O% }& W
3.2 CubeMX Updates from v6.1.1 to v6.2.0
微信图片_20220718171257.png
微信图片_20220718171254.png
微信图片_20220718171248.png
' J4 [1 f& y% T1 J' z
- h$ @6 d1 `0 b6 q/ R9 K3 I
4.验证
4.1 参考工程0 |# Z5 R- B& t2 o
微信图片_20220718171244.png
4.2 编译并下载

% }9 z" o- V, l3 J, U4 T7 n
用 IAR 打开STM32Cube_FW_WL_V1.0.0\Projects\NUCLEOWL55JC\Applications\LoRaWAN\WLEx_PingPong\EWARM\Project.eww

  i0 K9 Z5 ?; A: ?1 O1 t
如果 IAR 之前已经打开了 WLEx_PingPong,在每次重新生成代码时都如有如下提示,选择“Yes to All”
微信图片_20220718171240.png
按 F7 或选择 Project=>Make(F7)来编译工程,如果编译无错误,选择Project=>Download=>Download Active Application 下载WLEx_PingPong 应用

# n: k# L& i8 L2 ?3 E2 w- `
微信图片_20220718171527.png
微信图片_20220718171529.png
微信图片_20220718171507.png
收藏 1 评论0 发布时间:2022-7-19 17:00

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版