0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用CubeMX创建基于STM32WL的LoRa应用

STM32单片机 来源:STM32单片机 作者:STM32单片机 2022-07-18 09:05 次阅读

引言

本篇 LAT 介绍使用 CubeMX 创建基于 STM32WL 的 LoRa 应用。

STM32Cube_FW_WL_V1.0.0ProjectsNUCLEO-WL55JC 中的例程都是基于 STM32WL BGA73 的,CubeMX 无法直接创建基于 STM32WL QFN48 的例程。

同时介绍如何参考STM32Cube_FW_WL_V1.0.0ProjectsNUCLEOWL55JCApplicationsSubGHz_PhySubGHz_Phy_PingPong 创建一个 WLEx_PingPong 的例

子。

关于不同 MCU 间的移植可参考

UM1718 11.9 Switching to another MCU

UM1718 15 Tutorial 5: Exporting current project configuration to a compatible MCU

需要提前准备的环境:

45ccaf82-04a0-11ed-ba43-dac502259ad0.png

1.配置 CubeMX

1.1 配置 CubeMX 并下载 CubeWL

可以使用 CubeMX 默认安装的仓库目录也可以自定义仓库目录,本例使用自定义的仓库目录C:UsersgongwSTM32CubeRepositoryCubeWL,如下Help=>Updater Settings=>Repository Forlder=>C:UsersgongwSTM32CubeRepositoryCubeWL=>OK

45e877d0-04a0-11ed-ba43-dac502259ad0.png

45f7fbb0-04a0-11ed-ba43-dac502259ad0.png

选择 Manage software installations 中的 Install or remove embedded software packages 下的

“INSTALL / REMOVE”

460bfeda-04a0-11ed-ba43-dac502259ad0.png

46234392-04a0-11ed-ba43-dac502259ad0.png

点Refresh 更新数据库

463a85ac-04a0-11ed-ba43-dac502259ad0.png

Fresh 结束后,点开 STM32WL 左侧的黑色三角,选中 STM32WL 下版本 1.0.0 的 STM32Cube

MCU Package for STM32WL Series,点 Install Now

464d6c8a-04a0-11ed-ba43-dac502259ad0.png

点击 Close

1.2 CubeMX 新建项目

打开 STM32CubeMX,在 New Project 下有三中选择, 请根据需求选择 New Project 的方式!

465f24f2-04a0-11ed-ba43-dac502259ad0.png

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

4673afd0-04a0-11ed-ba43-dac502259ad0.png

4684c77a-04a0-11ed-ba43-dac502259ad0.png

469b876c-04a0-11ed-ba43-dac502259ad0.png

选择 NUCLEO-WL55JC 对应的 STM32WL55JC

46b5035e-04a0-11ed-ba43-dac502259ad0.png

46c8d9ec-04a0-11ed-ba43-dac502259ad0.png

46daaa5a-04a0-11ed-ba43-dac502259ad0.png

46f582b2-04a0-11ed-ba43-dac502259ad0.png

4705fce6-04a0-11ed-ba43-dac502259ad0.png

47173722-04a0-11ed-ba43-dac502259ad0.png

1.3 CubeMX 导入参考项目

472ddbf8-04a0-11ed-ba43-dac502259ad0.png

473eb662-04a0-11ed-ba43-dac502259ad0.png

474dda48-04a0-11ed-ba43-dac502259ad0.png

475f3d7e-04a0-11ed-ba43-dac502259ad0.png

476fb262-04a0-11ed-ba43-dac502259ad0.png

47924034-04a0-11ed-ba43-dac502259ad0.png

此时再查看 File =>Import Project 选项,变为灰色,表示新项目已被配置,不能再 import 参考项目。

47b112f2-04a0-11ed-ba43-dac502259ad0.png

1.4 CubeMX 配置项目

1.4.1 CubeMX 配置 Project Manager

选择 Project Manager

1.4.1.1 配置 Project

选择右侧 Project 并配置如下:

47bfdd64-04a0-11ed-ba43-dac502259ad0.png

注意:

通过 Browse 选择 Project 保存的目录

项目名称 WLEx_AT_Slave 创建在STM32Cube_FW_WL_V1.0.0ProjectsNUCLEO-

WL55JCApplicationsLoRaWAN 下,和LoRaWAN_End_Node 同级目录,即

C:UsersgongwSTM32CubeRepositoryCubeWLSTM32Cube_FW_WL_V1.0.0ProjectsNUCLEO-WL55JCApplicationsLoRaWANWLEx_PingPong,以 便于与 LoRaWAN_End_Node 进行比较

配置 Application Structure 为 Advanced 与 basic 有什么区别?

Application Structure 为 Advanced 时目录结构分类分级目录更清晰。

Application Structure 为 Basic 时,所有的*.h 都在 WLEx_PingPongInc 目录下,所有的*.c 在

WLEx_PingPongSrc 目录下。

一旦生成过一次代码后目录结构就无法更改了!!!

47df66ac-04a0-11ed-ba43-dac502259ad0.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”

48014f2e-04a0-11ed-ba43-dac502259ad0.png

481b917c-04a0-11ed-ba43-dac502259ad0.png

注意:

Copy all used library Package (如复制 DriversSTM32WLxx_HAL_Driver 下的所有驱动)

WLEx_PingPong 复制到其他目录下,还能工作

Copy only the necessary library files(如仅复制 DriversSTM32WLxx_HAL_Driver 下使用到的驱动)WLEx_PingPong复制到其他目录下,还能工作

Add necessary library files as reference in the toolchain project configuration file(不生成 Drivers 和Middlewares 目录,仅参考DriversSTM32WLxx_HAL_Driver 下的所有驱动)

WLEx_PingPong 复制到其他目录下,不能工作

参考 UM1718 4.9 Project Manager view

482d1ffa-04a0-11ed-ba43-dac502259ad0.png

483d2ba2-04a0-11ed-ba43-dac502259ad0.png

48509002-04a0-11ed-ba43-dac502259ad0.png

3.配置外设

2.1 使能外设

2.1.1 Middleware=>SUBGHZ_PHY 使能

486f0ac8-04a0-11ed-ba43-dac502259ad0.png

2.1.2 Timers=>RTC 使能

Timers=>RTC=>勾选 Activate Clock Source

488b2082-04a0-11ed-ba43-dac502259ad0.png

2.2 RTC

489a562e-04a0-11ed-ba43-dac502259ad0.png

Clock Configuration => RTC Clock Mux=>LSE

在 Clock Configuration 中检查 RTC Clock Mux 是否配置为 LSE

48a88460-04a0-11ed-ba43-dac502259ad0.png

Timer =>RTC=>Users Constants

48c905aa-04a0-11ed-ba43-dac502259ad0.png

48ea1cea-04a0-11ed-ba43-dac502259ad0.png

49046dfc-04a0-11ed-ba43-dac502259ad0.png

Timer =>RTC=>Parameter Settings

491b2088-04a0-11ed-ba43-dac502259ad0.png

Timer =>RTC=>NVIC Settings

492c35bc-04a0-11ed-ba43-dac502259ad0.png

Middleware => LORAWAN => Platform Settings => Timer Server => RTC

493b3774-04a0-11ed-ba43-dac502259ad0.png

2.3 DebugLine

2.3.1 Middleware => SUBGHZ_PHY => SubGHz_Phy middleware =>

radio_board_if =>Actovate Debug Line

49487cea-04a0-11ed-ba43-dac502259ad0.png

2.3.2. Platform Settings => VCOM => USART2

495e847c-04a0-11ed-ba43-dac502259ad0.png

4.3.3. Clock Configuration => UART2 Clock Mux => SYSCLK

4974d9e8-04a0-11ed-ba43-dac502259ad0.png

Platform Settings => VCOM => LPUART1

498c9772-04a0-11ed-ba43-dac502259ad0.png

2.4 System Core => GPIO (RF SW CTRL / BUTTON / LED)

2.4.1 RF_CTRL

System Core => GPIO => PA8 (customizable)

499c5f4a-04a0-11ed-ba43-dac502259ad0.png

49bd49b2-04a0-11ed-ba43-dac502259ad0.png

49cf3122-04a0-11ed-ba43-dac502259ad0.png

Platform Settings => Radio => RF SW CTRL

49e0cfe0-04a0-11ed-ba43-dac502259ad0.png

2.4.2 LED

System Core => GPIO => PB2 (customizable)

4a085d6c-04a0-11ed-ba43-dac502259ad0.png

Platform Settings => Board resources => LED

4a22376e-04a0-11ed-ba43-dac502259ad0.png

3 STM32WL Templates Patches for CubeMX

STM32WL Templates 在如下目录,如需要可自行定制自己的 Templates

4a368e1c-04a0-11ed-ba43-dac502259ad0.png

针对不同的客户定制化的板子,硬件外设配置不一致,客户可根据需要定制化自己的外设配置。

从 NUCLEO-WL55JC(BGA73) 移植到STM32WLExCxUx(QFN48)定制化的板子上,射频开关(RF SW CTRL),按键(BUTTON), LED 的配置会不一样,可能导致编译错误,如想生成的代码不会产生编译错误,需要编辑一下 STM32WL的 template。

3.1 CubeMX template patches for stm32wl

请参考

4a42059e-04a0-11ed-ba43-dac502259ad0.png

3.2 CubeMX Updates from v6.1.1 to v6.2.0

4a507eee-04a0-11ed-ba43-dac502259ad0.png

4a5cb9c0-04a0-11ed-ba43-dac502259ad0.png

4a745b98-04a0-11ed-ba43-dac502259ad0.png

4.验证

4.1参考工程

4a9519c8-04a0-11ed-ba43-dac502259ad0.png

4.2 编译并下载

用 IAR 打开STM32Cube_FW_WL_V1.0.0ProjectsNUCLEOWL55JCApplicationsLoRaWANWLEx_PingPongEWARMProject.eww

如果 IAR 之前已经打开了 WLEx_PingPong,在每次重新生成代码时都如有如下提示,选择“Yes to All”

4aa47756-04a0-11ed-ba43-dac502259ad0.png

按 F7 或选择 Project=>Make(F7)来编译工程,如果编译无错误,选择Project=>Download=>Download Active Application 下载WLEx_PingPong 应用

审核编辑:汤梓红


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IAR
    IAR
    +关注

    关注

    5

    文章

    344

    浏览量

    36616
  • LoRa
    +关注

    关注

    349

    文章

    1671

    浏览量

    231775
  • CubeMx
    +关注

    关注

    0

    文章

    30

    浏览量

    1320

原文标题:工程师笔记|CubeMX 创建 WL SubGHz PingPong 应用

文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32CubeMX STM32WL不能配置LoRaWAN的原因?

    STM32CubeMX 中使用STM32WL配置LoRaWAN时不能配置,请问为什么?
    发表于 04-02 07:47

    新手求助在STM32CubeMX中为STM32WL创建新项目失败

    我今天在 STM32CubeMX 中为 STM32WL 创建一个新项目,我想使用定时器外设的“注册回调”功能。所以我启用了回调功能并生成了项目。当我打开它时,没有定义回调符号。我开始四处挖掘,发现
    发表于 12-01 06:53

    使用CubeMX创建STM32WL板子的LoRaWAN应用

    本篇 LAT 介绍使用 CubeMX 创建基于采用 STM32WLE5JC/STM32WL55JC 的 STM32WL 板子 的 LoRaW
    的头像 发表于 07-08 13:09 3462次阅读

    线下实训 | STM32WL LoRa® SoC应用开发及设计

    点击 蓝字 关注 课程介绍 STM32WL 微控制器以 Arm Cortex‐M4 内核架构为基础构建,支持多种调制模式(LoRa、(G)FSK、(G)MSK 和 BPSK),能够以一种完全
    的头像 发表于 11-10 11:45 1404次阅读

    用于 STM32WL 系列 LoRa®调制的 RSSI 和 SNR

    用于 STM32WL 系列 LoRa®调制的 RSSI 和 SNR
    发表于 11-21 08:11 0次下载
    用于 <b class='flag-5'>STM32WL</b> 系列 <b class='flag-5'>LoRa</b>®调制的 RSSI 和 SNR

    STM32WL私有LoRa网络设计原理以及演示介绍

    STM32WL私有LoRa网络设计原理以及演示介绍
    的头像 发表于 09-19 16:42 2966次阅读
    <b class='flag-5'>STM32WL</b>私有<b class='flag-5'>LoRa</b>网络设计原理以及演示介绍

    CubeMX创建WL LoRa EndNode应用

    电子发烧友网站提供《CubeMX创建WL LoRa EndNode应用.pdf》资料免费下载
    发表于 09-19 17:00 0次下载
    <b class='flag-5'>CubeMX</b><b class='flag-5'>创建</b><b class='flag-5'>WL</b> <b class='flag-5'>LoRa</b> EndNode应用

    CubeMX创建WL LoRa AT_Slave应用

    电子发烧友网站提供《CubeMX创建WL LoRa AT_Slave应用.pdf》资料免费下载
    发表于 09-19 16:59 1次下载
    <b class='flag-5'>CubeMX</b><b class='flag-5'>创建</b><b class='flag-5'>WL</b> <b class='flag-5'>LoRa</b> AT_Slave应用

    STM32WL FUOTA应用设计

    电子发烧友网站提供《STM32WL FUOTA应用设计.pdf》资料免费下载
    发表于 09-19 15:01 2次下载
    <b class='flag-5'>STM32WL</b> FUOTA应用设计

    STM32WL LoRa RF测试

    电子发烧友网站提供《STM32WL LoRa RF测试.pdf》资料免费下载
    发表于 09-19 14:45 2次下载
    <b class='flag-5'>STM32WL</b> <b class='flag-5'>LoRa</b> RF测试

    STM32WL使用STM32CubeMX创建LoRa节点应用

    电子发烧友网站提供《STM32WL使用STM32CubeMX创建LoRa节点应用.pdf》资料免费下载
    发表于 09-19 14:46 1次下载
    <b class='flag-5'>STM32WL</b>使用<b class='flag-5'>STM32CubeMX</b><b class='flag-5'>创建</b><b class='flag-5'>LoRa</b>节点应用

    STM32WL LoRa例程介绍

    电子发烧友网站提供《STM32WL LoRa例程介绍.pdf》资料免费下载
    发表于 09-19 14:49 2次下载
    <b class='flag-5'>STM32WL</b> <b class='flag-5'>LoRa</b>例程介绍

    STM32WL软件简介

    电子发烧友网站提供《STM32WL软件简介.pdf》资料免费下载
    发表于 09-19 14:51 1次下载
    <b class='flag-5'>STM32WL</b>软件简介

    STM32WL硬件简介

    电子发烧友网站提供《STM32WL硬件简介.pdf》资料免费下载
    发表于 09-19 14:53 2次下载
    <b class='flag-5'>STM32WL</b>硬件简介

    应用笔记 | STM32WL LoRa节点入网失败问题分析总结

    关键字:STM32WL,LoRaWAN,入网,OTAA   目录预览 1.引言 2.LoRaWAN网络架构 3.创建CubeMX工程 4.移植过程中可能遇到的问题 5.小结 0 1 前言 客户刚使
    的头像 发表于 09-27 17:10 2136次阅读