STMCU小助手
发布时间:2022-7-19 17:00
|
引言 本篇 LAT 介绍使用 CubeMX 创建基于 STM32WL 的 LoRa 应用。 STM32Cube_FW_WL_V1.0.0\Projects\NUCLEO-WL55JC 中的例程都是基于 STM32WL BGA73 的,CubeMX 无法直接创建基于 STM32WL QFN48 的例程。 同时介绍如何参考STM32Cube_FW_WL_V1.0.0\Projects\NUCLEOWL55JC\Applications\SubGHz_Phy\SubGHz_Phy_PingPong 创建一个 WLEx_PingPong 的例 子。 关于不同 MCU 间的移植可参考 UM1718 11.9 Switching to another MCU UM1718 15 Tutorial 5: Exporting current project configuration to a compatible MCU 需要提前准备的环境:
: w) o! l1 b; c# Q/ X+ f; d 1.配置 CubeMX 1.1 配置 CubeMX 并下载 CubeWL 可以使用 CubeMX 默认安装的仓库目录也可以自定义仓库目录,本例使用自定义的仓库目录C:\Users\gongw\STM32Cube\Repository\CubeWL,如下Help=>Updater Settings=>Repository Forlder=>C:\Users\gongw\STM32Cube\Repository\CubeWL=>OK $ W9 u; [0 L: U
9 x, R5 F4 s4 Z8 g* k
选择 Manage software installations 中的 Install or remove embedded software packages 下的 “INSTALL / REMOVE” / O% w0 W; G' B2 p! @
+ [0 A+ {2 R& Y
点Refresh 更新数据库
Fresh 结束后,点开 STM32WL 左侧的黑色三角,选中 STM32WL 下版本 1.0.0 的 STM32Cube MCU Package for STM32WL Series,点 Install Now
/ \+ b% N m3 ? E" q g' ]8 Z7 a 点击 Close 1.2 CubeMX 新建项目 打开 STM32CubeMX,在 New Project 下有三中选择, 请根据需求选择 New Project 的方式!
. 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 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 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
6 }: _! a+ l( ]2 x! Z- s
$ I. Z) f7 p& v8 V* o1 ]) ~ 选择 NUCLEO-WL55JC 对应的 STM32WL55JC
) }4 H/ A3 s% a. ]6 O T
) L# F4 Z6 }% t3 E0 a3 R$ A' B; Y0 Q, f 1.3 CubeMX 导入参考项目 2 Y7 ?$ s& }4 K
$ h1 {9 A. o+ f6 W; G
此时再查看 File =>Import Project 选项,变为灰色,表示新项目已被配置,不能再 import 参考项目。
1.4 CubeMX 配置项目 : @% n' o- H, U( q6 g1.4.1 CubeMX 配置 Project Manager 选择 Project Manager 1.4.1.1 配置 Project 选择右侧 Project 并配置如下:
注意: 通过 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 进行比较 ⚫ 配置 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. }一旦生成过一次代码后目录结构就无法更改了!!!
选择右侧 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”
注意: ⚫ 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复制到其他目录下,还能工作 ⚫ Add necessary library files as reference in the toolchain project configuration file(不生成 Drivers 和Middlewares 目录,仅参考Drivers\STM32WLxx_HAL_Driver 下的所有驱动) WLEx_PingPong 复制到其他目录下,不能工作 参考 UM1718 4.9 Project Manager view
3. 配置外设 2.1 使能外设 2.1.1 Middleware=>SUBGHZ_PHY 使能
2.1.2 Timers=>RTC 使能 Timers=>RTC=>勾选 Activate Clock Source
2.2 RTC
Clock Configuration => RTC Clock Mux=>LSE 在 Clock Configuration 中检查 RTC Clock Mux 是否配置为 LSE
Timer =>RTC=>Users Constants
Timer =>RTC=>Parameter Settings
Timer =>RTC=>NVIC Settings
Middleware => LORAWAN => Platform Settings => Timer Server => RTC
2.3 DebugLine 2.3.1Middleware => SUBGHZ_PHY => SubGHz_Phy middleware => radio_board_if =>Actovate Debug Line
2.3.2. Platform Settings => VCOM => USART2
4.3.3. Clock Configuration => UART2 Clock Mux => SYSCLK
Platform Settings => VCOM => LPUART1
2.4 System Core => GPIO (RF SW CTRL / BUTTON / LED) 3 \+ h3 n! w- K' l; l. U2.4.1 RF_CTRL System Core => GPIO => PA8 (customizable)
Platform Settings => Radio => RF SW CTRL
2.4.2 LED System Core => GPIO => PB2 (customizable)
Platform Settings => Board resources => LED
/ G4 |6 K1 u+ _& s2 V 3 STM32WL Templates Patches for CubeMX STM32WL Templates 在如下目录,如需要可自行定制自己的 Templates
针对不同的客户定制化的板子,硬件外设配置不一致,客户可根据需要定制化自己的外设配置。 从 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 请参考
x7 O% [2 s2 W0 q/ t 3.2 CubeMX Updates from v6.1.1 to v6.2.0
! 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
4.2 编译并下载 9 |2 d, _( H. f/ `, s用 IAR 打开STM32Cube_FW_WL_V1.0.0\Projects\NUCLEOWL55JC\Applications\LoRaWAN\WLEx_PingPong\EWARM\Project.eww 如果 IAR 之前已经打开了 WLEx_PingPong,在每次重新生成代码时都如有如下提示,选择“Yes to All”
按 F7 或选择 Project=>Make(F7)来编译工程,如果编译无错误,选择Project=>Download=>Download Active Application 下载WLEx_PingPong 应用 : W3 t/ }4 g, S: ~& @1 m |
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
《MCUBoot课程》学习笔记+从信任链原理到量产实践
Keil-MDK 在线调试设置断点的高级用法
请教下STM32N6570 怎么把分辨率改成320x240并可以全屏显示
【福利三:逢7发帖赢大礼】想要充分利用STM32H743VI片内的RAM空间(但并不顺利)
基于stm32平台上的IC-MU磁绝对值编码器SPI通讯和码盘数据处理
使用STM32 MCU和MPU连接PDM数字麦克风
分享STM32资料-采用 STM32U031R8 MCU 的 STM32 Nucleo-64 开发板,官方资料,数据手册等资料
好用软件推荐-TouchGFX Designer
HRTIM 指南
微信公众号
手机版