Lora模块与STM32的连接及使用(HAL)指南

stm32与loar模块的连接与使用(HAL)

准备:

1.stm32f103c8t6单片机
2.两个Lora模块
3.usb转ttl
4.st-link

Lora模块

Lora模块是一种用于无线通信的设备,它基于LoRa(低功耗广域网)技术。LoRa技术是一种长距离、低功耗的无线通信技术,适用于物联网(IoT)应用。
Lora模块能够实现超过数公里的通信距离,这使得它适用于需要远距离传输数据的应用场景。城镇可达2-5km,郊区可达15km。
Lora模块采用低功耗设计,在传输数据时能够最大限度地减少能量消耗,因此可以延长电池寿命,适用于需要长时间离线工作的设备。

简单来说就是无线的串口,vcc,GND接电,RXD和TXD用作收发,M0,lock和AUX与配置相关

根据上表,M0接地(此时是不使用M0,也可以正常收发),LOCK一定要接高电压,接错了数据不同步,收发会出现问题,AUX可以直接悬空就好。

M0低电平就是传输,M0高电平是配置模式,可通过相关的软件去进行配置。

Lora模块的默认波特率是9600,我认为再与单片机相连前先只用两个Lora模块之间进行通信这样最好,出现问题,可以用AT指令去配置相关的信息。同时还要防止多个Lora模块之间可能会造成干扰,如果附近有人在使用Lora的话,可以把通信信道和模块地址修改一下。

cubemx配置

3.串口1作为收信息,并把波特率设为9600.

4.串口3作为为发送信息,波特率设为9600.

这里是用一个单片机作为示例来演示以下,正常在使用过程中可能需要两块单片机,需要自己在进行相关的配置。

5.时钟配置

6.起名并更改IDE,而且我更习惯把.c文件和.h文件分开,大家可以自我更改。

代码

#include "main.h"
#include "usart.h"
#include "gpio.h"
#include "stdio.h"
#include "math.h"
#include "string.h"    



    void LORA_SendData(uint8_t* data, uint16_t size)
{
// 发送数据到LORA模块
HAL_UART_Transmit(&huart3, data, size, 1000);
}

void LORA_ReceiveData(uint8_t* buffer, uint16_t size)
{
// 从LORA模块接收数据
HAL_UART_Receive(&huart1, buffer, size, 1000);
}

uint8_t sendData[] = "Hello, LORA!";
uint8_t receiveData[32];



while(1)
{
    // 发送数据
LORA_SendData(sendData, sizeof(sendData));

// 接收数据
LORA_ReceiveData(receiveData, sizeof(receiveData));
}

如果有错误,欢迎大家指正。

物联沃分享整理
物联沃-IOTWORD物联网 » Lora模块与STM32的连接及使用(HAL)指南

发表评论