STMCU小助手
发布时间:2022-7-11 23:04
|
引言 本篇 LAT 介绍使用 CubeMX 创建基于采用 STM32WLE5JC/STM32WL55JC 的 STM32WL 板子 的 LoRaWAN 应用。 其中,参考使用了 STM32Cube_FW_WL_V1.0.0\Projects\NUCLEOWL55JC\Applications\LoRaWAN\LoRaWAN_End_Node 创建一个 WLE5Jx_EndNode 的例子。 + _/ F) T9 E' J关于不同 MCU 间的移植可参考 UM1718 11.9 Switching to another MCU UM1718 15 Tutorial 5: Exporting current project configuration to a compatible MCU 需要提前准备的环境:
1.配置 CubeMX 1.1 配置 CubeMX 并下载 CubeWL # v O( _7 O4 V {: B可以使用 CubeMX 默认安装的仓库目录也可以自定义仓库目录,本例使用自定义的仓库目录C:\Users\gongw\STM32Cube\Repository\CubeWL,如下Help=>Updater Settings=>Repository Forlder=>C:\Users\gongw\STM32Cube\Repository\CubeWL=>OK
选择 Manage software installations 中的 Install or remove embedded software packages 下的 “INSTALL / REMOVE”
点Refresh 更新数据库
Fresh 结束后,点开 STM32WL 左侧的黑色三角,选中 STM32WL 下版本 1.0.0 的 STM32Cube MCU Package for STM32WL Series,点 Install Now % e9 ^! X$ H2 E0 i
点击 Close 1.2 CubeMX 新建项目 0 u2 d1 y3 K2 c" l+ v r, b" g打开 STM32CubeMX,在 New Project 下有三中选择, 请根据需求选择 New Project 的方式!
1.2.1 Start My project from MCU 第 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 - a9 x" t% I' G- ?1.2.4 Start My project from MCU STM32WLEx 在 New Project 下选择,”Start My project from MCU ”下的”ACCESS TO MCU SELECTOR“ 1 j/ Y3 v, o' {8 \# x/ y
1.3 CubeMX 导入参考项目
此时再查看 File =>Import Project 选项,变为灰色,表示新项目已被配置,不能再 import 参考项 目。
1.4 CubeMX 配置项目 # o' \0 g7 x8 j% q1.4.1 CubeMX 配置 Project Manager 选择 Project Manager 1.4.1.1 配置 Project 选择右侧 Project 并配置如下: 2 q$ l% |& {, r/ _' W8 v0 C
注意: 通过 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_AT_Slave,以便于与 LoRaWAN_End_Node 进行比较 ⚫ 配置 Application Structure 为 Advanced 与 basic 有什么区别? Application Structure 为 Advanced 时目录结构分类分级目录更清晰。 Application Structure 为 Basic 时,所有的*.h 都在 WLEx_AT_Slave\Inc 目录下,所有的*.c 在 WLEx_AT_Slave\Src 目录下。 一旦生成过一次代码后目录结构就无法更改了!!!
1.4.1.2 配置 Code Generator 选择右侧 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_AT_Slave 复制到其他目录下,还能工作 5 U, W' z+ B/ [& y⚫ Copy only the necessary library files(如仅复制 Drivers\STM32WLxx_HAL_Driver 下使用到的驱动)WLEx_AT_Slave 复制到其他目录下,还能工作 ⚫ Add necessary library files as reference in the toolchain project configuration file(不生成 Drivers 和Middlewares 目录,仅参考Drivers\STM32WLxx_HAL_Driver 下的所有驱动) WLEx_AT_Slave 复制到其他目录下,不能工作 参考 UM1718 4.9 Project Manager view
3. 配置外设 2.1 使能外设 2.1.1 Middleware=>LORAWAN Middleware=>LORAWAN=>Mode 中勾选Enabled,LORAWAN 功能就使能了,同时SIGFOX 和 SUBGHZ_PHY 就失能了,默认界面如下,后续再继续配置 LORAWAN 应用。
2.1.2 Timers=>RTC 使能 Timers=>RTC=>勾选 Activate Clock Source,并配置 Alarm A 为 Internal Alarm A
2.2 RTC 配置 Alarm A 为 Internal Alarm A
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 Connectivity=>LPUART1 (AT_Slave)
Clock Configuration => USART2 Clock Mux => SYSCLK 7 m; ~) V' T u5 a. a
Middleware => LORAWAN => LoRaWAN middleware => radio_board_if =>Activate Debug Line
Platform Settings => VCOM => USART2
2.4 System Core => GPIO (RF SW CTRL / BUTTON / LED) 2.4.1 RF_CTRL NUCLEO-WL55JC
2.4.2 LED3 v' D: ?! f4 j/ ^/ t 配置控制 LED 的 GPIO
2.4.3 BUT 配置控制 BUTTON 的 GPIO
5 p5 O4 d# B2 [4 M: O, W
2.4.4 DBG
2.4.5 SWD(可选) 需使能 Trace and Debug => DEBUG => JTAG and Trace => Serial Wire
) }8 b4 y" y# w. } 2.4.6 Middleware=>LORAWAN=>Platform Settings Board resources => LED & BUTTON Radio => RF SW CTRL Debug = > Debug Line
! x1 J0 X" {5 t' d0 x 2.5 ADC Analog=>ADC
Middleware=>LORAWAN=>Platform Settings => Vrefint T calibration => ADC (EndNode) % ^$ X: F+ Y3 A0 s' V$ u3 STM32WL Templates Patches for CubeMX3 |5 h/ Z. c9 Q7 J/ z / ?, R% n* F# ]STM32WL Templates 在如下目录,如需要可自行定制自己的 Templates
针对不同的客户定制化的板子,硬件外设配置不一致,客户可根据需要定制化自己的外设配置。 从 NUCLEO-WL55JC(BGA73) 移植到STM32WLExCxUx(QFN48)定制化的板子上,射频开关(RF SW CTRL),按键(BUTTON), LED 的配置会不一样,可能导致编译错误,如想生成的代码不会产生编译错误,需要编辑一下 STM32WL的 template。 ! `" h4 Q8 x7 ?$ J) r. ^* i3.1 CubeMX template patches for stm32wl 请参考
3.2 CubeMX Updates from v6.1.1 to v6.2.0
) j5 D4 x8 E8 O+ Y% A! @( h/ l 4.验证 4.0 参考工程
4.1 生成代码 GENERATE CODE 此时,可以先选择 GENERATE CODE 生成 Project,(如需,请自己选择项目保存的目录)
可选择 Open Project 使用 IDE 直接打开 Project。 或选择 Open Folder 后,还需再选择 EWARM\Project.eww 打开 Project
4.2 编译并下载 用 IAR 打开STM32Cube_FW_WL_V1.0.0\Projects\NUCLEO WL55JC\Applications\LoRaWAN\WLEx_AT_Slave\EWARM\Project.eww 如果 IAR 之前已经打开了 WLEx_AT_Slave,在每次重新生成代码时都如有如下提示,选择“Yes to All”
按 F7 或选择 Project=>Make(F7)来编译工程,如果编译无错误,选择 Project=>Download=>Download Active Application 下载 WLEx_AT_Slave 应用 5 接入 cn1.LoRiot Network Server 如果不需要将 WL 的 Sensor 数据转发到 cn1.LoRiot Network Server 网络服务器上,可跳过此步骤。 如果需要将 WL 的 Sensor 数据转发到 cn1.LoRiot Network Serve 网络服务器上,需用 CubeMX 重新配置下 LORAWAN 的一些参数。 5.1 WL Sensor End Device 信息更改 5.1.1 配置 REGION_EU868 默认配置即可 ; E9 ~* t* z; {9 d* I {
5.1.2 配置 REGION_CN470
5.2 配置 DevEUI, AppEUI 和 AppKey 在 LoRaWAN\App\se-identity.h 中更改设备信息 DevEUI, AppEUI 和 AppKey
DevAddr 不需要设置静态地址,可以配置的
5.3 转发到 myDevuces Cayenne 应用服务器(可选) 3 d$ c) R2 ~8 j
5.4 WL Sensor End Device 信息获取和确认 其中包含更新过的 WLE5Jx_EndNode.ioc 用 IAR 编译 Projects\NUCLEO-WL55JC\Applications\LoRaWAN\WLE5Jx_EndNode\EWARM\Project.eww,并下载 到 WL 中,注意 STLINKv3 的设置。 连接 WL 串口到 PC,PC 端打开串口,配置如下,然后重启 WL,会看到 DEV EUI,APP EUI,APP KEY Open a terminal emulation software such as Tera Term and configure it with the following settings: – Port: (Virtual COM port number assigned to the board) – Baud rate: 115200 – Data: 8 bit – Parity: none – Stop: 1 bit . p, r1 R2 r3 {% p
|
【STM32H5 评测】ADC 电压表
【STM32H5 评测】基础硬件加密与随机数性能 - STM32H5E5实测硬件AES加解密、HASH运算、TRNG真随机数输出速率与稳定性
【STM32H5 评测】NUCLEO-H5E5ZJ 使用 TrustZone 安全分区系统实践测试
【STM32H5 评测】CPU核心性能 - STM32H5E5跑 RTOS,观察任务切换速度、中断响应快慢
【STM32H5 评测】介绍、环境搭建、工程测试
#双节活动 1.在CubeMX中引用touchGFX出现的问题与解决
如何将STM32CubeMX生成的CMake工程导入STM32CubeIDE
【 逢7发帖赢大礼】1、利用CubeMX生成正点原子H7R7开发板的STM32CubeIDE工程
STM32CubeCLT 1.22.0新版本发布
【下载问题解决】关于ST官网下载软件问题解决
微信公众号
手机版