e22-400t22d是工作在400mhz频段、最大发射功率22dbm的lora串口透传模块,对外仅暴露串口,支持无线双向透明传输,无需理解lora协议栈或lorawan,配置简单,适合几公里级数据回传。

直接用串口透传最简单,别碰 LoRa 协议栈或 LoRaWAN——你不需要网关、不走网络服务器、也不需要 Class A/B/C 分类。只要两台模块配对成功,write() 发、read() 收,就是双向透明传输。
怎么确认模块支持纯透传模式(不走 LoRaWAN)
工业级 LoRa 数传终端(如 JY-DTD-LxxD、LORAxxxx 系列)默认就是透传模式,上电即用,无需 AT 指令初始化。关键看是否标有“透明传输”“双向对传”“无需编程”字样;若模块型号含 LoRaWAN 或明确写“需接入网关”,就不是你要的类型。
- ✅ 正确特征:说明书里出现
RS485 转 LoRa、5km 无线直连、主从模式、广播透传 - ❌ 错误信号:提到
OTAA/ABP、DevEUI/AppEUI、Join Request、Network Server - ⚠️ 注意:有些模块出厂是 LoRaWAN 模式,需用配套上位机软件刷回透传固件(如 JY-IOT 工具),不能靠串口 AT 指令切换
串口通信层怎么写(C++ Linux / Windows 都适用)
核心是把 LoRa 模块当普通串口设备用:open() → tcsetattr()(设 9600/8/N/1)→ write() → read()。不要加帧头帧尾、不校验、不重发——透传模块自己不解析数据,只负责射频转发。
- 波特率必须一致:常见为
9600、19200,极少数用115200,查模块规格书确认,别凭经验瞎试 - 停止位/校验位必须设为
1 停止位、无校验(即8N1),设成7E1或2 停止位会导致接收乱码 - Linux 下注意权限:
/dev/ttyUSB0可能需加sudo或将用户加入dialout组 - Windows 下用
\.COM3格式,别漏掉\.前缀,否则CreateFile失败
为什么发出去收不到?重点检查这三处
90% 的“收不到”问题和射频无关,全是配置或物理层失误。
-
信道号(Channel)不一致:两台模块必须设同一信道(如都设CH08),信道是物理频点,不是逻辑地址;查手册确认可选范围(常见 0–15 或 0–63) -
地址(Address)或组号(Group ID)不匹配:广播透传模式下可全设 0;定点传输或主从模式下,发送端目标地址必须等于接收端本地地址 - 天线没拧紧 / 模块没供电足:LoRa 模块发射时电流可达 120mA,
12V1A电源是底线,USB 供电常带不动;天线松动会导致距离骤降到 10 米内
小数据包性能与边界情况
透传模块对单包长度敏感,超长会丢帧或截断,但“小数据包”其实很宽松——多数模块支持单次透传 ≤ 256 字节原始数据,无需分包。
- 实际建议单包 ≤ 128 字节:留出余量应对模块内部缓存抖动,尤其在低信噪比环境
- 连续发送间隔 ≥ 20ms:模块射频收发切换需时间,太快发会导致第二包被吞(现象是只收到第一包)
- 不要依赖
read()一次读完整包:串口驱动可能分多次返回,必须按协议长度循环读取或加超时判断 - 模块无 ACK 机制:透传即“发了就算”,要可靠性得在应用层加应答逻辑(比如发
"PING",等对方回"PONG")
真正麻烦的从来不是代码,而是两台模块之间那几毫米的天线螺纹是否拧到位、信道数字有没有抄错、电源适配器是不是虚标了电流。透传的“透明”二字,意味着它不帮你掩盖任何物理层错误。
C++免费学习笔记(深入):立即使用
在学习笔记中,你将探索 C++ 的入门与实战技巧!











