所用单片机为STM32F407,此篇为当时做电赛时未记录,但是现在忘了所以重新记录一下,防止自己忘记。总的来说就是用串口给LoRa模块发送AT指令来配置模块,然后单片机想要发数据也是使用串口发送出去。
1、引脚连接
-
MD0引脚配置为推挽输出模式,并配置为下拉,AUX引脚配置为输入模式,并配置为下拉
(MD0、AUX 引脚悬空下为低电平)
(模块根据MD0 的配置与AUX 引脚的状态会进入不同的功能)
-
TXD、RXD与单片机的uart3的RXD以及TXD分别连接
-
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,则可配置下降沿中断,提示数据已经接收完了。文章来源:https://www.toymoban.com/news/detail-473678.html
EXTI9_5_IRQHandler()中断服务函数,在函数中可以看到,当是上升沿中断触发,先判断是否为接收模式,是则将串口接收数据计数清零,然后设置下降沿触发,以表示模块开始发送数据或开始输出数据。当下次下降沿中断来临,若是接收模式模式则标记串口接收数据已接收完成,若当前是发送模式状态的话,则知道数据已发送完毕,重新标记为接收模式,然后再调用Aux_Int 函数配置下次触发的边沿中断,再继续实现一次发送或接收。文章来源地址https://www.toymoban.com/news/detail-473678.html
到了这里,关于正点原子LoRa模块的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!