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文件分开,大家可以自我更改。
文章来源:https://www.toymoban.com/news/detail-738476.html
代码
#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));
}
如果有错误,欢迎大家指正。文章来源地址https://www.toymoban.com/news/detail-738476.html
到了这里,关于Lora模块与stm32的连接使用(hal)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!