正点原子LoRa模块的使用
迪丽瓦拉
2025-06-01 11:34:44
0
所用单片机为STM32F407,此篇为当时做电赛时未记录,但是现在忘了所以重新记录一下,防止自己忘记。总的来说就是用串口给LoRa模块发送AT指令来配置模块,然后单片机想要发数据也是使用串口发送出去。

1、引脚连接

  1. MD0引脚配置为推挽输出模式,并配置为下拉,AUX引脚配置为输入模式,并配置为下拉

(MD0、AUX 引脚悬空下为低电平)

(模块根据MD0 的配置与AUX 引脚的状态会进入不同的功能)

  1. TXD、RXD与单片机的uart3的RXD以及TXD分别连接

  1. GND、VCC即连在单片机上

(无线串口模块为TTL 电平,请与TTL 电平的MCU 进行连接)

(模块的引脚电平是3.3V,与5V 的单片机通信需要做电平转换适配)

2、LoRa整体函数流程

LoRa_Init()函数,初始化函数

上电后,AUX 空闲状态(即AUX=0),MD0=1,进入配置模式

使用AT指令测试模块响应情况

LoRa_Set(),LoRa配置

usart3_set():设置uart3的波特率、校验位(进入配置前首先要设置通道波特率和校验位115200 8位数据位 1位停止 无校验位)

同样的,等待AUX 空闲状态(即AUX=0),然后MD0=1,进入配置模式

使用AT指令设置设备地址、信道和空中速率、发射功率、工作模式、发送状态、睡眠时间、串口波特率、数据校验位(此处为填充LoRA的各种参数的结构体,并没有直接写入)

然后再使用usart3_set()写入波特率和校验位

while循环内

LoRa_SendData():使用按键来选择发送数据

根据前面结构体中填充的数据来判断是什么模式,本人在此用的是透明传输模式,无需设置目标信道的地址等、若需要使用定向传输模式,需要设置目标的地址、目标的信道。

LoRa_ReceData():接收从机发送的数据

接收从机发送的数据,判断为哪个传感器发送的数据,然后发送数据给DTU,DTU去上传数据给阿里云物模型,DTU使用的是uart2(具体有关DTU部分请看本人空间内有关DTU的文章)

3、中断函数

Aux_int 中断设置函数,该函数用于配置MCU 外部中断触发方式。

它可用于获取Aux 引脚的中断情况,若MCU 要接收模块发送的数据,则可配置上升沿触发,以提示数据要来了,MCU 请做好准备。当MCU 想知道模块的数据是否已全部发送给MCU,则可配置下降沿中断,提示数据已经接收完了。

EXTI9_5_IRQHandler()中断服务函数,在函数中可以看到,当是上升沿中断触发,先判断是否为接收模式,是则将串口接收数据计数清零,然后设置下降沿触发,以表示模块开始发送数据或开始输出数据。当下次下降沿中断来临,若是接收模式模式则标记串口接收数据已接收完成,若当前是发送模式状态的话,则知道数据已发送完毕,重新标记为接收模式,然后再调用Aux_Int 函数配置下次触发的边沿中断,再继续实现一次发送或接收。

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
A.机器学习入门算法(三):基... 机器学习算法(三):K近邻(k-nearest neigh...
数字温湿度传感器DHT11模块... 模块实例https://blog.csdn.net/qq_38393591/article/deta...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
Redis 所有支持的数据结构... Redis 是一种开源的基于键值对存储的 NoSQL 数据库,支持多种数据结构。以下是...
win下pytorch安装—c... 安装目录一、cuda安装1.1、cuda版本选择1.2、下载安装二、cudnn安装三、pytorch...
MySQL基础-多表查询 文章目录MySQL基础-多表查询一、案例及引入1、基础概念2、笛卡尔积的理解二、多表查询的分类1、等...
keil调试专题篇 调试的前提是需要连接调试器比如STLINK。 然后点击菜单或者快捷图标均可进入调试模式。 如果前面...
MATLAB | 全网最详细网... 一篇超超超长,超超超全面网络图绘制教程,本篇基本能讲清楚所有绘制要点&#...