如上图所示,LM403-Pro-Kit评估板由ST-LINK、跳线、LM403模组、按键、LED以及天线接口等组成。
USB连接PC即可以在线仿真、下载和串口打印调试输出、输入操作。
电源开关
控制LM403模组的电源与LDO的3.3V的通断。
MicroUSB
板子供电及ST-LINK与PC机连接的接口。
ST-LINK跳线
J1跳线定义
- VCC:LDO的3.3V
- VCC_LORA:LM403的3.3V
- GND:接地
- GND:接地
- T_SWDIO:ST-Link的SWDIO
- SWDIO_LORA:LM403的SWDIO
- T_SWDCLK:ST-LINK的SWDCLK输出
- SWDCLK_LORA:LM403的SWDCLK
其它外设说明
- FE_CTRL1:射频控制1
- FE_CTRL3:射频控制3
LM403射频开关控制逻辑
LM403功耗测试
测试LM403模组功耗时需端口SW3电源开关及ST-LINK的跳线,通过J1插座上的VCC_LORA与GND对LM403供电,排除其它部分的干扰。
Ping-Pong例程说明
Ping-Pong例程是两块LM403-Pro-Kit开发板之间的一个简单LoRa收发例程。
默认情况下,LM403-Pro-Kit评估板作为主设备,发送一个“Ping”消息然后等待回复。第一个收到“Ping”信息的设备将变为从设备,并以“Pong”信息回复主设备。当主设备收到“Pong”信息之后继续发送“Ping”信息。这样就建立了一个持续的Ping-Pong收发过程。
业务流程图
Main主流程
- HAL_Init()
- SystemClock_Config()
- MX_GPIO_Init()
- MX_SubGHz_Phy_Init()
SystemApp_Init()
配置唤醒时钟为 MSI。
初始化定时器。
初始化高级跟踪工具和时间戳函数。
设置跟踪的详细级别。
初始化低功耗管理器。
禁用 Stand-by 模式和 Stop 模式,具体取决于LOW_POWER_DISABLE 的定义。
SubghzApp_Init()
综合来看,这段代码的主要功能是初始化 SubGHz 应用所需的硬件和参数,包括定时器、Radio 模块的事件处理函数、频率设置和调制模式配置。最后,它注册一个任务,该任务将在主循环中处理 SubGHz 应用的进程。
void MX_SubGHz_Phy_Process(void)
{/* USER CODE BEGIN MX_SubGHz_Phy_Process_1 *//* USER CODE END MX_SubGHz_Phy_Process_1 */UTIL_SEQ_Run(UTIL_SEQ_DEFAULT);/* USER CODE BEGIN MX_SubGHz_Phy_Process_2 *//* USER CODE END MX_SubGHz_Phy_Process_2 */
}
MX_SubGHz_Phy_Process()调用UTIL_SEQ_Run(UTIL_SEQ_DEFAULT)完成基本的任务调度。
例程中提供了一个类似于RTOS的,事件驱动的调度机制。具体内容参考stm32_seq.c
整个PingPong流程
整个PingPong的执行由LoRa射频回调事件驱动,实现于subghz_phy_app.c。
主要有初始化SubGHzAPP_Init(),PingPong处理PingPong_Process()以及LoRa射频回调函数组成。