之前做Lora一对多无线通信时记录的笔记,里面包含了Lora的简单配置寄存器和串口测试案例 。 不附带代码
其实Lora也支持AT指令。。。
LoRa学习
引脚定义

引脚序号 | 引脚名称 | 引脚方向 | 引脚用途 |
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
寄存器地址

功能详解
定点发射
STM32 给 LoRa发送这种格式的数据

广播发射

测试
我们把这个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进制。

这样就代表成功了!
有关Lora学习或者使用上的问题,欢迎您在底部评论区留言,一起交流~
- 作者:L_Z_J
- 链接:https://www.mcoi.top/article/Post-Lora
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。









