这里写自定义目录标题

  • LoRa通信系统
    • 硬件准备
      • 硬件连接
      • ALTIUM DESIGNER绘图
      • 驱动代码的配置
    • 实际测试以及遇到的问题
      • 两种串口中断方式的取舍
      • 如何保证信息的正确传输

LoRa通信系统

从毕设开始搭建了一个简单的LORA通信系统(两块STM32C8T6最小单片机系统,两块正点原子的loRa,一块温湿度传感器)构建了一个简单的loRa通信系统作为入门。之后帮忙给做LORA传输的相关项目,实现的功能是全双工的LORA通信系统,利用物理上两个通信信道实现全双工方案,实现了LORA传输传感器信息,图片数据的功能,对这个系统如何实现的感兴趣的请继续往下看。

硬件准备

双工信道的两组具有互易性,故以下以其中一组为例。自己画了一块最小单片机系统板,将安信可家的Ra-02集成到了一块板子上。需要PCB封装库的文末自提,包含大部分所需器件,如果有人感兴趣,之后再写一篇如何画PCB库中没有的封装、如何画最小单片机系统板的教程。

硬件连接

硬件连接如下图:

C8T6 LORA
GND GND
VCC VCC(3.3 V)
PA8 NSS
PB15 MOSI
PB14 MISO
PB13 SCK
PB12 RST
PB8 DIO0
PB9 DIO4

额外的为了指示主函数的运行,加了一个LED小灯。

C8T6
PB5 LED

ALTIUM DESIGNER绘图

教程推荐B站刘涛老师的课,三个小时就可以自己画一个完整的最小单片机系统,并掌握基础的绘制器件封装的方法。然而在我做出了实物之后,还是建议大家学习跟教程,自己画板子的时候尽量自己合理布局布线,不要过于依赖自动布线。

驱动代码的配置

安信可家提供的SX1278芯片手册,新手直接看难度较高,官方提供的sx1278.c,sx1278对照着手册可以看懂。我们在配置的时候需要着重理解读SPI传输,这里不赘述,直接给出读SX1278的寄存器函数,写寄存器函数,在了解一部分关于LORA的工作模式介绍,我们就可以开始配置LORA通信系统的配置了。

  1. SPI通信
void writeSX1278(unsigned char address,unsigned char buf)
{setNss(0);sendSPIxByte();sendSPIxByte();setNss(1)
}void readSX1278(unsigned char adress)
{unsigned char r;setNss(0);sendSPIxByte();r=readSPIxByte();setNss(1);
}
  1. Lora工作模式
    关于工作模式的内容可以详细的看芯片手册,我们这里只看连续接收模式,发射模式,睡眠模式,以及待机模式,之后整个通信系统也只会应用到这几个工作模式。
    setSX1278OpMode
setSX1278OpMode(stdby mode);

实际测试以及遇到的问题

两种串口中断方式的取舍

初学一开始过来用到了正点原子的例程,但是对于0D0A的强制要求不适用,我们单独做了DMA的串口的方式去匹配大量数据。这一部分也很多这里不赘述。

如何保证信息的正确传输

方案一:重传丢弃,缺点是耗时较长
方案二:简单的握手信号,保证数据的正确传输。

有人看的话在来完善/捂脸

STM32C8T6+LORA(SX1278)相关推荐

  1. LoRa SX1278通信代码开发学习

    前言 最近在学习和摸索LoRa SX1278无线发射模块,其中学到了很多新知识和对SX1278也有了深一点的认识,现在将学习开发中遇到的问题.解决方法.调试完成和低功耗等内容分享出来,也是一种学习记录 ...

  2. LoRa SX1278/76驱动原理 附代码

    LoRa SX1278/76驱动原理 附代码 原理解释 LoRa 关键参数说明 前导码: 报头: 显式报头模式: 隐式报头模式: LoRa 调制解调: 扩频因子: 编码率: 信号带宽: 代码说明 SP ...

  3. 基于LORA SX1278的温度监控控制系统开发设计-硬件方案设计

    本文的目的是设计一款基于lora无线通信的温度温度采集或者接收终端.首先进行硬件部分设计,完成的结果如下图: 结构分解: 为什么要用LORA,LORA的优势和缺点是什么: LORA是semtech公司 ...

  4. Lora SX1278芯片 模块引脚的功能介绍

    这个是安信可Lora模块引脚图 --------安信可Lora模块用户手册------------- 致远电子Lora模块 -------datasheet--------- 这个datasheet还 ...

  5. arduino lora通讯_Arduino开发板和树莓派之间实现Lora点对点通讯

    随着物联网.互联汽车.M2M.工业4.0等的出现,LoRa越来越受欢迎.由于其能够以非常低的功率进行长距离通信,因此它非常适合设计人员用于发送/接收来自电池供电的数据.我们已经讨论了LoRa的基础知识 ...

  6. Lora SX1276整理文档

    lora Sx1278模块 1.初始化 (1)首次先对SPI的IO口初始化可通过硬件SPI和软件模拟SPI (2)模块在初始化之前应先复位模块,reset针脚主要对模块重启有作用低电平有限高电平运行, ...

  7. LoRa扩频、稳定通信、无线抄表、更远距离

    相比传统无线通信,LoRa能够在相同发射功率的情况下实现更远的通信距离,同时拥有更强的抗干扰能力. 因此,LoRa无线模组广泛应用于无线抄表等长距离无线通信应用中. 高成本单片机·稳定性更强 AS62 ...

  8. Lora通信应用开发

    概述: 1.了解Lora技术的基本知识 2.了解通信协议用途 3.掌握Lora模块SPI配置方法 4.掌握简单的Lora模块数据对传方法 5.掌握Lora通讯协议使用方法 一.什么是LoRa LoRa ...

  9. matlab射频传输距离计算,Lora参数计算和RF射频传输距离计算公式和工具 - 创新实验室 - 电子工程世界-论坛 - 手机版...

    本帖最后由 xulikai 于 2019-10-20 10:36 编辑 此内容由EEWORLD论坛网友xulikai原创,如需转载或用于商业用途需征得作者同意并注明出处 前导码发送时长 每个前导码发送 ...

最新文章

  1. MYSQL 获取当前日期及日期格式以及非空处理
  2. springboot(2.2.4)的默认日志框架logback换成log4j2
  3. LOL手游锤石上线吓坏玩家?英雄设计被吐槽,玩家:还我端游锤石
  4. Spring框架学习笔记(2)——IOCDI
  5. 采用Opserver来监控你的ASP.NET项目系列(三、监控你的服务器状态)
  6. 简明Python教程学习笔记_5_解决问题
  7. 系统调用和库函数的区别
  8. heap python_数据结构-堆(Heap) Python实现
  9. 精易模块保存html文档,精易模块6.60源码
  10. 用MATLAB玩转机器人-第1章 认识MATLAB
  11. nosql mysql mongodb_nosql数据库MongoDB的用法
  12. 删除了几个月的照片能找回么_手机删除的照片如何恢复?一招教你解决
  13. 最短路POJ 1062 昂贵的聘礼
  14. 析构函数的标量与矢量?
  15. WPF中的对话框 Dialog
  16. 计算机网络基础教程第二版答案,计算机网络技术实用教程(第2版)课后习题答案...
  17. 双显示器扩展显示时怎么移动鼠标到另一块屏?
  18. pytorch提供的maskrcnn训练自己的数据
  19. [Kafka] Kafka基本架构
  20. linux+cs1.6服务器搭建,Linux玩CS反恐精英的方法

热门文章

  1. 免费的网站,堪称神器
  2. 打造属于自己的量化投资系统9——支持向量机SVM算法在股票预测涨跌中应用
  3. 网易2018实习生招聘笔试题-C++开发实习生解答
  4. 【MIME协议】base64编码与quoted-printable编码
  5. 【未完成】常微分实验3.3:解 连续的初值 可微性定理
  6. 删掉wps后台烂进程
  7. Linux进阶之路-Ubuntu版
  8. FinClip如何将H5工程转为小程序
  9. 火车头微博采集发布规则教程详解
  10. 第3周项目1-顺序表的基本运算