Lazy loaded image
嵌入式软件开发
📘LoRa学习
字数 875阅读时长 3 分钟
2025-4-1
2026-9-15
😀
之前做Lora一对多无线通信时记录的笔记,里面包含了Lora的简单配置寄存器和串口测试案例 。 不附带代码 其实Lora也支持AT指令。。。

LoRa学习

引脚定义

notion image
引脚序号
引脚名称
引脚方向
引脚用途
1
M0
输入(极弱上拉)
和 M1 配合, 决定模块的 4 种工作模式(不可悬空, 如不使用可接地
2
M1
输入(极弱上拉)
和 M0 配合, 决定模块的 4 种工作模式(不可悬空, 如不使用可接地
3
RXD
输入
TTL 串口输入, 连接到外部 TXD 输出引脚;
4
TXD
输出
TTL 串口输出, 连接到外部 RXD 输入引脚;
5
AUX
输出
用于指示模块工作状态;用户唤醒外部 MCU, 上电自检初始化期间输出低电平; (可以悬空)
6
VCC
电源
模块电源正参考, 电压范围: 2.3~5.5V DC
7
GND
电源
模块地线

工作模式

模块有四种工作模式, 由引脚 M1、 M0 设置; 详细情况如下表所示:
模式(0-3)
M1
M0
模式介绍
备注
0 传输模式
0
0
串口打开, 无线打开, 透明传输
支持特殊指令空中配置
1 WOR 模式
0
1
可以定义为 WOR 发送方和 WOR 接收方
支持空中唤醒
2 配置模式
1
0
用户可通过串口对寄存器进行访问, 从而控制模块工作状态
3 深度休眠
1
1
模块进入休眠

寄存器读写控制

指令格式

配置模式(模式 2: M1=1, M0=0) 下
支持的指令列表如下(设置时, 只支持 9600, 8N1 格式)
  • 设置寄存器
    • 指令: C0+起始地址+长度+参数
    • 响应: C1+起始地址+长度+参数
    • 例子: C0 05 01 09 即在 0x05 地址 依次写入一次数据 0x09
    • 例子: C0 00 04 12 34 00 61 即在 0x00 地址 依次写入 四次数据,分别是 0x12 0x34 0x00 0x61
  • 读取寄存器
    • 指令: C1+起始地址+长度
    • 响应: C1+起始地址+长度+参数
  • 设置临时寄存器
    • 指令: C2 +起始地址+长度+参数
    • 响应: C1 +起始地址+长度+参数
  • 无线配置
    • 指令: CF CF + 常规指令
    • 响应: CF CF + 常规响应
    • 例 1: 无线配置信道为 0x09 无线指令头 + 指令 + 起始地址 + 长度 + 参数 发送: CF CF C0 05 01 09 返回: CF CF C1 05 01 09
  • 格式错误
    • 格式错误响应FF FF FF

寄存器地址

notion image

功能详解

定点发射

STM32 给 LoRa发送这种格式的数据
notion image

广播发射

notion image

测试

我们把这个LoRa模块 配置为
  • 地址 0x00 0x01
  • 网络地址 0x04
  • 串口 9600 8N1
  • 空中 2.4K
  • 信道 0x17
  • 定点传输
  • 其他默认就行
  • 那么只需要写入 C0 00 07 00 01 04 62 00 17 40
  • C0 写入、00 起始地址、07 依次写入7次、后续为7次数据。需要根据2进制转为16进制。
notion image
这样就代表成功了!
💡
有关Lora学习或者使用上的问题,欢迎您在底部评论区留言,一起交流~
上一篇
Csharp学习笔记
下一篇
MAX30102心率传感器

评论
Loading...