IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 【STM32WLE5之LoRa# 系列2、易智联LM401 评估板PingPong例程移植1】 -> 正文阅读

[嵌入式]【STM32WLE5之LoRa# 系列2、易智联LM401 评估板PingPong例程移植1】

前言

记录基于STM32CubeMX构建STM32WLE5模块的PingPong收发例程的过程。硬件平台为易智联蓝色的LM401 LoraWan评估板,对应的MCU型号为STM32WLE5CBU6。PingPong例程具有完整的数据收发过程,并且配置了ST的基本任务调度、软定时、队列和日志输出,是我们开发Lora私有协议的基础工程。

一、开发环境

STM32CubeIDE 是 ST 公司基于 Eclipse/CDT 框架和 GUN GCC 工具链制作的免费 IDE,并集成了STM32CubeMX。 可以实现 STM32 系列芯片的外围设备配置、代码生成、代码编辑、代码编译、在线调试,并且支持数百个 Eclipse 现有插件。

1、STM32CubeMX与STM32CubeIDE软件安装

官网下载stm32cubemx、stm32cubeide
stm32cubemx:https://www.st.com/en/development-tools/stm32cubemx.html
stm32cubeide:https://www.st.com/en/development-tools/stm32cubeide.html
基本上一路确定即可。
虽然STM32CubeIDE集成了STM32CubeMX,不如单独的灵活STM32CubeMX。单独安装STM32CubeMX一方面方便导入应用例程,另一方面方便生成MDK、IAR的工程。

2、下载STM32WL固件库

运行STM32CubeMX,HELP–>Manage embedded software packages如下图所示
在这里插入图片描述
在这里插入图片描述
等待下载安装完成,默认的安装位置为C:\Users\用户\STM32Cube\Repository\STM32Cube_FW_WL_V1.1.0

二、硬件平台

LM401-LoraWAN 评估板板载基于STM32WLE5CB的LM401模块。提供了基本的硬件电路,并提供了板载USB转COM以及LDO。USB连接电脑既可以实现供电、打印输出、输入操作。
在这里插入图片描述
PingPong例程中Log输出端口为板载的USB转串口PA2、PA3,软件配置成UART2 波特率115200-8-N-1。

三、 PingPong例程的简介

1、PingPong例程位置

\STM32Cube\Repository\STM32Cube_FW_WL_V1.1.0\Projects\NUCLEO-WL55JC\Applications\SubGHz_Phy\SubGHz_Phy_PingPong
目录如下:
在这里插入图片描述

2、PingPong例程功能

PingPong例程是两个评估板之间的一个简单收发例程。默认情况下,评估板作为主设备发送一个“Ping”消息然后等待回复。第一个收到“Ping”消息的评估板将自己设置成从设备,并回复“Pong”消息。当主设备收到“Pong”消息之后继续发送“Ping”消息。这样就建立了一个持续的PingPong收发对。
这个例程能够使我们快速的了解STM32WLE5的收发过程,方便LoRa私有协议的开发。

3、附加功能

在移植PingPong例程过程中,STM32CubeMX配置时我们增加一路ADC的采集,以便后续做采集上报例程。

四、 PingPong例程的移植

1、创建STM32CubeMX工程;

a、打开STM32CubeMX工具;
b、新建工程Start My Project From MCU;
在这里插入图片描述
c、选择STM32WL系列,选择STM32WLE5CB双击
在这里插入图片描述
d、File菜单–>Import Project导入PingPong例程并点击OK,用户名为自己实际目录
C:\Users\用户\STM32Cube\Repository\STM32Cube_FW_WL_V1.1.0\Projects\NUCLEO-WL55JC\Applications\SubGHz_Phy\SubGHz_Phy_PingPong\SubGHz_Phy_PingPong.ioc
在这里插入图片描述
中间会有些错误,是因为原例程平台STM32WL55JC为BGA封装,有些引脚STM32WLE5CB没有。
e、配置时钟输入,HSE 32MHz晶体振荡器,LSE 32.768K晶体振荡器
在这里插入图片描述
f、RTC开启Alarm A,软件定时使用
在这里插入图片描述
g、启RTC中断
在这里插入图片描述
h、配置ADC
在这里插入图片描述
i、SUBGHZ_PHY按如下配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

k、时钟配置
RTC配置32.768Khz,HSE 32Mhz,MCU时钟48Mhz使用内部MSI RC时钟
在这里插入图片描述

2、生产STM32CubeIDE工程;

a、Project Manager配置
在这里插入图片描述
在这里插入图片描述
b、执行GENERATE CODE生成工程

五、工程编译

1、工程配置

将BSP文件夹放入\PingPong_csdn\STM32CubeIDE\Drivers目录,
打开\PingPong_csdn\STM32CubeIDE目录,双击.project打开工程。
右击工程名称,选择Properties,将BSP目录加载到Inclue paths
在这里插入图片描述
修改platform.h,将原来的

#if defined(USE_BSP_DRIVER)
/* code generated by STM32CubeMX does not support BSP.  */
/* In order to use BSP, users can add the BSP files in the IDE project space */
/* and define USE_BSP_DRIVER in the preprocessor definitions  */
//#include "stm32wlxx_nucleo.h"
//#include "stm32wlxx_nucleo_radio.h"
#include "stm32wlxx_LM401.h"
#include "stm32wlxx_LM401_radio.h"
#endif /* defined(USE_BSP_DRIVER) */

在这里插入图片描述

2、工程编译

执行Build All。
在这里插入图片描述
编译成功,生成二进制代码
在这里插入图片描述

六、小结

至此PingPong例程的CubeMX工程和CubeIDE工程移植完成,打开app_subghz_phy.c如下所示,只有一个基本框架。后续需要完善没有定义的射频功能函数和PingPong例程的应用程序。

static RadioEvents_t RadioEvents;
/* USER CODE BEGIN PV */

/* USER CODE END PV */

/* Private function prototypes -----------------------------------------------*/
/*!
 * @brief Function to be executed on Radio Tx Done event
 */
static void OnTxDone(void);

/**
  * @brief Function to be executed on Radio Rx Done event
  * @param  payload ptr of buffer received
  * @param  size buffer size
  * @param  rssi
  * @param  LoraSnr_FskCfo
  */
static void OnRxDone(uint8_t *payload, uint16_t size, int16_t rssi, int8_t LoraSnr_FskCfo);

/**
  * @brief Function executed on Radio Tx Timeout event
  */
static void OnTxTimeout(void);

/**
  * @brief Function executed on Radio Rx Timeout event
  */
static void OnRxTimeout(void);

/**
  * @brief Function executed on Radio Rx Error event
  */
static void OnRxError(void);

/* USER CODE BEGIN PFP */
/* USER CODE END PFP */

/* Exported functions ---------------------------------------------------------*/
void SubghzApp_Init(void)
{
  /* USER CODE BEGIN SubghzApp_Init_1 */
  /* USER CODE END SubghzApp_Init_1 */

  /* Radio initialization */
  RadioEvents.TxDone = OnTxDone;
  RadioEvents.RxDone = OnRxDone;
  RadioEvents.TxTimeout = OnTxTimeout;
  RadioEvents.RxTimeout = OnRxTimeout;
  RadioEvents.RxError = OnRxError;

  Radio.Init(&RadioEvents);

  /* USER CODE BEGIN SubghzApp_Init_2 */
  /* USER CODE END SubghzApp_Init_2 */
}

/* USER CODE BEGIN EF */

/* USER CODE END EF */

/* Private functions ---------------------------------------------------------*/

static void OnTxDone(void)
{
  /* USER CODE BEGIN OnTxDone */
  /* USER CODE END OnTxDone */
}

static void OnRxDone(uint8_t *payload, uint16_t size, int16_t rssi, int8_t LoraSnr_FskCfo)
{
  /* USER CODE BEGIN OnRxDone */
  /* USER CODE END OnRxDone */
}

static void OnTxTimeout(void)
{
  /* USER CODE BEGIN OnTxTimeout */
  /* USER CODE END OnTxTimeout */
}

static void OnRxTimeout(void)
{
  /* USER CODE BEGIN OnRxTimeout */
  /* USER CODE END OnRxTimeout */
}

static void OnRxError(void)
{
  /* USER CODE BEGIN OnRxError */
  /* USER CODE END OnRxError */
}

/* USER CODE BEGIN PrFD */
/* USER CODE END PrFD */

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-01-17 11:38:55  更:2022-01-17 11:39:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 1:49:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码