STM32C8T6+LORA(SX1278)
这里写自定义目录标题
- 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通信系统的配置了。
- 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);
}
- Lora工作模式
关于工作模式的内容可以详细的看芯片手册,我们这里只看连续接收模式,发射模式,睡眠模式,以及待机模式,之后整个通信系统也只会应用到这几个工作模式。
setSX1278OpMode
setSX1278OpMode(stdby mode);
实际测试以及遇到的问题
两种串口中断方式的取舍
初学一开始过来用到了正点原子的例程,但是对于0D0A的强制要求不适用,我们单独做了DMA的串口的方式去匹配大量数据。这一部分也很多这里不赘述。
如何保证信息的正确传输
方案一:重传丢弃,缺点是耗时较长
方案二:简单的握手信号,保证数据的正确传输。
有人看的话在来完善/捂脸
STM32C8T6+LORA(SX1278)相关推荐
- LoRa SX1278通信代码开发学习
前言 最近在学习和摸索LoRa SX1278无线发射模块,其中学到了很多新知识和对SX1278也有了深一点的认识,现在将学习开发中遇到的问题.解决方法.调试完成和低功耗等内容分享出来,也是一种学习记录 ...
- LoRa SX1278/76驱动原理 附代码
LoRa SX1278/76驱动原理 附代码 原理解释 LoRa 关键参数说明 前导码: 报头: 显式报头模式: 隐式报头模式: LoRa 调制解调: 扩频因子: 编码率: 信号带宽: 代码说明 SP ...
- 基于LORA SX1278的温度监控控制系统开发设计-硬件方案设计
本文的目的是设计一款基于lora无线通信的温度温度采集或者接收终端.首先进行硬件部分设计,完成的结果如下图: 结构分解: 为什么要用LORA,LORA的优势和缺点是什么: LORA是semtech公司 ...
- Lora SX1278芯片 模块引脚的功能介绍
这个是安信可Lora模块引脚图 --------安信可Lora模块用户手册------------- 致远电子Lora模块 -------datasheet--------- 这个datasheet还 ...
- arduino lora通讯_Arduino开发板和树莓派之间实现Lora点对点通讯
随着物联网.互联汽车.M2M.工业4.0等的出现,LoRa越来越受欢迎.由于其能够以非常低的功率进行长距离通信,因此它非常适合设计人员用于发送/接收来自电池供电的数据.我们已经讨论了LoRa的基础知识 ...
- Lora SX1276整理文档
lora Sx1278模块 1.初始化 (1)首次先对SPI的IO口初始化可通过硬件SPI和软件模拟SPI (2)模块在初始化之前应先复位模块,reset针脚主要对模块重启有作用低电平有限高电平运行, ...
- LoRa扩频、稳定通信、无线抄表、更远距离
相比传统无线通信,LoRa能够在相同发射功率的情况下实现更远的通信距离,同时拥有更强的抗干扰能力. 因此,LoRa无线模组广泛应用于无线抄表等长距离无线通信应用中. 高成本单片机·稳定性更强 AS62 ...
- Lora通信应用开发
概述: 1.了解Lora技术的基本知识 2.了解通信协议用途 3.掌握Lora模块SPI配置方法 4.掌握简单的Lora模块数据对传方法 5.掌握Lora通讯协议使用方法 一.什么是LoRa LoRa ...
- matlab射频传输距离计算,Lora参数计算和RF射频传输距离计算公式和工具 - 创新实验室 -
电子工程世界-论坛 -
手机版...
本帖最后由 xulikai 于 2019-10-20 10:36 编辑 此内容由EEWORLD论坛网友xulikai原创,如需转载或用于商业用途需征得作者同意并注明出处 前导码发送时长 每个前导码发送 ...
最新文章
- MYSQL 获取当前日期及日期格式以及非空处理
- springboot(2.2.4)的默认日志框架logback换成log4j2
- LOL手游锤石上线吓坏玩家?英雄设计被吐槽,玩家:还我端游锤石
- Spring框架学习笔记(2)——IOCDI
- 采用Opserver来监控你的ASP.NET项目系列(三、监控你的服务器状态)
- 简明Python教程学习笔记_5_解决问题
- 系统调用和库函数的区别
- heap python_数据结构-堆(Heap) Python实现
- 精易模块保存html文档,精易模块6.60源码
- 用MATLAB玩转机器人-第1章 认识MATLAB
- nosql mysql mongodb_nosql数据库MongoDB的用法
- 删除了几个月的照片能找回么_手机删除的照片如何恢复?一招教你解决
- 最短路POJ 1062 	昂贵的聘礼
- 析构函数的标量与矢量?
- WPF中的对话框 Dialog
- 计算机网络基础教程第二版答案,计算机网络技术实用教程(第2版)课后习题答案...
- 双显示器扩展显示时怎么移动鼠标到另一块屏?
- pytorch提供的maskrcnn训练自己的数据
- [Kafka] Kafka基本架构
- linux+cs1.6服务器搭建,Linux玩CS反恐精英的方法