STMCU小助手
发布时间:2022-7-9 16:34
|
引言 本篇 LAT 介绍使用 CubeMX 创建基于采用 STM32WLE5JC/STM32WL55JC 的 STM32WL 板子 的 LoRaWAN 应用。 其中,参考使用了 STM32Cube_FW_WL_V1.0.0\Projects\NUCLEOWL55JC\Applications\LoRaWAN\LoRaWAN_End_Node 创建一个 WLE5Jx_EndNode 的例子。 关于不同 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 # b+ B/ M/ P* v' z可以使用 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” & @5 A1 e. u; |. R9 e8 x! O+ U
点Refresh 更新数据库
Fresh 结束后,点开 STM32WL 左侧的黑色三角,选中 STM32WL 下版本 1.0.0 的 STM32Cube MCU Package for STM32WL Series,点 Install Now 5 _6 d* F" B5 N" ]& N
点击 Close 3 P' U0 m4 B1 A% p" d 1.2 CubeMX 新建项目 ! r8 A! c, h6 o ^2 B6 d! c/ 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 8 P/ d& ]* h+ ]/ O1.2.4 Start My project from MCU STM32WLEx 在 New Project 下选择,”Start My project from MCU ”下的”ACCESS TO MCU SELECTOR“
1.3 CubeMX 导入参考项目 & s( q, z ^' l$ C L; ^9 e+ m
此时再查看 File =>Import Project 选项,变为灰色,表示新项目已被配置,不能再 import 参考项 目。
1.4 CubeMX 配置项目 1.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_AT_Slave,以便于与 LoRaWAN_End_Node 进行比较 8 L3 ?' l0 f y0 [6 o⚫ 配置 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 复制到其他目录下,还能工作 ⚫ Copy only the necessary library files(如仅复制 Drivers\STM32WLxx_HAL_Driver 下使用到的驱动)WLEx_AT_Slave 复制到其他目录下,还能工作 : }+ m, `) O$ p) ~0 i⚫ 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 使能外设 $ D* r4 @6 w3 s) X+ o2.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
Middleware => LORAWAN => LoRaWAN middleware => radio_board_if =>Activate Debug Line ! x) m5 I5 {; w/ q q, y8 t' I
Platform Settings => VCOM => USART2
2.4 System Core => GPIO (RF SW CTRL / BUTTON / LED) 2.4.1 RF_CTRL NUCLEO-WL55JC
2.4.2 LED% T. X- g, V( C. u! G: {* a 配置控制 LED 的 GPIO
2.4.3 BUT 配置控制 BUTTON 的 GPIO
2.4.4 DBG
2.4.5 SWD(可选) 需使能 Trace and Debug => DEBUG => JTAG and Trace => Serial Wire
2.4.6 Middleware=>LORAWAN=>Platform Settings 3 w: K6 W5 |. f1 r B" \/ KBoard resources => LED & BUTTON Radio => RF SW CTRL Debug = > Debug Line
6 W" @" O* |) `, u7 G 2.5 ADC Analog=>ADC
Middleware=>LORAWAN=>Platform Settings => Vrefint T calibration => ADC (EndNode) 3 STM32WL Templates Patches for CubeMX0 f5 e( T$ J4 d4 N. s0 r STM32WL Templates 在如下目录,如需要可自行定制自己的 Templates
针对不同的客户定制化的板子,硬件外设配置不一致,客户可根据需要定制化自己的外设配置。 从 NUCLEO-WL55JC(BGA73) 移植到STM32WLExCxUx(QFN48)定制化的板子上,射频开关(RF SW CTRL),按键(BUTTON), LED 的配置会不一样,可能导致编译错误,如想生成的代码不会产生编译错误,需要编辑一下 STM32WL的 template。 % M# V$ O3 J7 r& R$ a4 ?3 P3.1 CubeMX template patches for stm32wl 请参考
3.2 CubeMX Updates from v6.1.1 to v6.2.0
4.验证 4.0 参考工程3 N- b; O/ A' O3 ]5 j% X5 e) X
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 应用 # f$ h7 R& i) l5 X0 N" ^8 }& n# I0 v; K 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 默认配置即可 : x. q) r# O- x) e/ M! g8 g
5.1.2 配置 REGION_CN470
, F8 N9 e& Q( @ ^! S$ J4 i 5.2 配置 DevEUI, AppEUI 和 AppKey 在 LoRaWAN\App\se-identity.h 中更改设备信息 DevEUI, AppEUI 和 AppKey ( S6 k" f5 l8 t# d$ x9 ` f, s
DevAddr 不需要设置静态地址,可以配置的
5.3 转发到 myDevuces Cayenne 应用服务器(可选)
5.4 WL Sensor End Device 信息获取和确认 5 K' C+ M* z& Y其中包含更新过的 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 8 P* G. F& P: c2 S: L3 ?! j5 U/ l
|
【新品测评】STM32WL3R芯片测评,从点亮第一个LED到subGhz启动
STM32WLE55 无线收发功能调试记录
STM32 无线 MCU HSE 频率与启动时间精确调谐实战指南
STM32新品选型指南:WL3R、C5、H5F/E、U3B/3C5 特性解析与场景适配
【新品有奖】新品STM32WL3R:低功耗智能交互,无线遥控新选择
STM32WL3R重磅登场,把无线遥控MCU卷到新高度
告别通用内卷!STM32WL3R凭“专用”破局,开启无线遥控新时代
经验分享 | STM32WL LoRa CAD 开启实操指南:低功耗信道活动检测实现方案
兔哥心中的ST中文论坛
小白也能明白的STM32的低功耗与唤醒机制
微信公众号
手机版