[005] [蓝桥杯物联网] LoRa模块通信原理概述与API使用方法

      最后更新:2022-04-05 00:33:46 手机定位技术交流文章

      MCU型号:STM32L071KBU
      SDK:HAL库
      CubeMX和MDK是必需的工具。

      1 LORA模块概览

      1.1 模块描述

      LoRa (Long Range模块收发机类型(本地、远程)SX1278,以履行部分时间点对点数据传输功能,其逻辑和引号见下图所示:

      image-20220402152132346

      Lora 模块的示意图

      image-20220402160909929

      Lora 模块脚本概要

      Lora董事会选择了以下引文:
      在这里插入图片描述

      • PA5-7: 一般硬件 SPI通讯装置
      • PA4: 片段、通用程序选择
      • PA9:在重置时,当没有重置时,在需要初始化时拉起
      • PA10:DIO0有一个外部入侵,当接收器收到数据时,DIO0将沿着信号开始上升,并可在EXTI分离期间进行数据处理配置。

      1.2 工作模式

      在这里插入图片描述

      SX1278除睡眠和等待外,登记簿可以任何方式阅读。

      1.3 数据FIFO

      FIFFO 总计Lora数据256用于传输和接收数据的字节,该字节可用除睡眠模式以外的任何模式读写,并在转换到新的接收模式时立即删除先前的内容,如下图所示:

      image-20220402163801589

      Lora数据首次输出(FIFO)

      数据传输的调制解调器,数据接收的调制解调器

      image-20220403025929695

      • 传输后,先输入备用模式,将FIFO SPI地址更新。FifoAddrPtr指定 FIFO 调制解调器地址 。FifoTxBaseAddr,将负载长度PayloadLength设置字节将数据传输到 FIFO, 然后开关发送模式, 等待发送完成, 发送完成后自动返回备用模式, 并切换到接收的连续接收模式, 如下图所示 :

      image-20220402164242149

      Lora 发件人全名
      • 在不断接收时,首先输入接收模式,等待接收完成,然后输入FIFO SPI地址。FifoAddrPtr设置 FIFO 的接收启动地址 。FifoRxCurrentAddr,以及从 FIFO 中读取RxNbBytes字节,如下图所示:

      image-20220402164300954

      Lora接收程序

      在芯片模式之间转换时,以下是FIFO的状况:

      image-20220403024217581

      2 HAL图书馆的LoRa编程

      CubeMX 配置第2号

      PA5~7将SPI电信页脚设为硬件:

      image-20220403143635874

      根据官方手册,为配置LoRa模块的SPI通信,需要下列参数:

      • 全双工通信
      • SPI主机在模式0下运行,CPOL=0,CPH=0。
      • MSB通信,数据长度8比特
      • SPI速度必须小于10M(主要频率32M/4=8M)。

      此外,还需要初始化PA9复位引脚和PA4片段被选择并调整以适应一般推力生产,并被拉上来。

      PA10设置来触发外部中断, 并设置来触发:

      image-20220403144425547

      干扰:

      image-20220403144455574

      SPI_ writeRead 函数覆盖 2

      2.3 Lora API为2。

      Lora 初始化(二.三.1)

      一般而言,只有Lora模式(必须设定为睡眠模式)和无线电频率/频率被配置,其余的则默认。

      射频功率在10mW可提供超过25KM视距传输。

      注:应当指出,LoRa模块间频率、带宽、振幅系数和铅代号长度是所有通信特点。

      二.三.2 数据传输

      • pucBuf:要传输的数据缓冲链接
      • ucSize:拟转移的数据字节(最大数据为FIFO)256因此,在一次传输中超过256个字节的数据将被关闭)

      随着数据发送,Lora模块进入连续接收模式,等待收到数据。

      二 三 三 三 三 三 三 三 三 三 三 三 三 数据收集

      • pucBuf:指向用于接收缓冲区的指针
      • 收到数据的长度( 字节) 以返回值返回 。

      当收到数据时, Lora 模块将转换为连续接收模式,等待再次接收数据。

      2.4 使用示例

      为传输数据,请按USER:

      在外部中断EXTI4_15_IRQHandler在回声函数中,打印收到的数据:

      实验结果表明,Lora模块能够有效地相互发送和接收数据。

      image-20220403145243200

      END

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/21496.html

          热门文章

          文章分类