

在物联网项目开发中,LoRa无线模块凭借远距离、低功耗的特性,成为广域物联网通信的首选方案。然而,要让LoRa模块稳定工作,正确的硬件连接是首要前提。不同厂家的LoRa模块引脚定义大同小异,但在与不同MCU(如5V的Arduino UNO、3.3V的STM32、ESP32等)搭配时,电平匹配和引脚分配存在诸多注意事项。本文基于亿佰特全系列LoRa模块官方手册,详细梳理LoRa模块与各类单片机的连接规范与避坑指南。
在动手接线前,必须明确以下两个核心原则,这是避免烧毁模块或通信失败的前提:
绝大多数LoRa无线串口模块(如E22系列、E32系列、E220系列)的逻辑电平为TTL电平。
1. 3.3V MCU(如STM32、ESP8266/ESP32):天然匹配,可直接连接。
2. 5V MCU(如Arduino UNO、ATmega2560):由于模块TXD和AUX引脚输出高电平通常不超过VCC(3.3V),直接连接5V MCU的RXD引脚通常可以识别;但必须注意,某些5V单片机可能需要在模块的TXD和AUX脚加4~10K上拉电阻,以确保高电平稳定可靠。
3. 特殊警告:对于部分纯3.3V供电的射频模块(如E52系列、E150系列),手册明确规定“使用5V单片机,请进行UART电平转换”,切勿直接连接以免损坏模块。
单片机的串口引脚与LoRa模块的串口引脚必须交叉连接:
1. 单片机的TXD 连接 LoRa模块的 RXD;
2. 单片机的RXD 连接 LoRa模块的 TXD。
对于标准的LoRa串口透传模组(如E22-xxxTxxx、E220-xxxTxxx、E32系列),最完整的连接包含6根线,这也是实现模块全部功能(配置与收发)的推荐接法:
模块引脚 | 功能说明 | 单片机引脚 | 备注说明 |
VCC | 模块供电 | VCC (3.3V/5V) | 严格参考具体型号手册的供电范围,部分仅支持3.3V |
GND | 地线 | GND | 必须共地 |
TXD | 模块串口发送 | MCU_RXD | 数据接收,5V单片机建议加4.7K上拉 |
RXD | 模块串口接收 | MCU_TXD | 数据发送 |
M0 | 模式切换引脚0 | 任意GPIO | 用于切换休眠/配置/透传模式 |
M1 | 模式切换引脚1 | 任意GPIO | 用于切换休眠/配置/透传模式 |
AUX | 模块状态指示 | 任意GPIO (建议中断) | 用于指示模块收发状态及唤醒,5V单片机建议加上拉 |
设计小贴士:在PCB设计时,建议在M0/M1接口处预留1MΩ上拉电阻(针对EWM32M、EWM220M等系列),这可以在MCU引脚处于高阻态时保证模块稳定处于默认模式,防止误入配置状态。
不同的开发平台在引脚资源和硬件串口数量上有所区别,以下是官方推荐的典型连接方案:
Arduino UNO硬件串口常被用于电脑日志打印,因此驱动LoRa模块通常使用SoftwareLibrary(软串口)。
E22/E32/E220模块 | Arduino UNO引脚 | 说明 |
M0 | D7 | 模式控制 |
M1 | D6 | 模式控制 |
RX | D4 | Arduino D4(SoftRX) <-- 模块 TX |
TX | D5 | Arduino D5(SoftTX) --> 模块 RX |
AUX | D3 | 状态检测 |
VCC | 3.3V / 5V | 依模块型号而定 |
GND | GND | 共地 |
驱动库实例化代码:
cpp
#include "LoRa_E22.h"
// 构造函数参数:RX, TX, AUX, M0, M1
LoRa_E22 e22ttl(4, 5, 3, 7, 6);
ESP32拥有多个硬件串口,使用HardwareSerial驱动更为稳定,且不会占用CPU资源。
E22/E32/E220模块 | ESP32引脚 | 说明 |
M0 | GPIO19 | 模式控制 |
M1 | GPIO21 | 模式控制 |
RX | GPIO16 (RX2) | 硬件串口2接收 |
TX | GPIO17 (TX2) | 硬件串口2发送 |
AUX | GPIO18 | 状态检测 |
驱动库实例化代码:
cpp
#include "LoRa_E22.h"
// 构造函数参数:Serial对象, AUX, M0, M1
LoRa_E22 e22ttl(&Serial2, 18, 21, 19);
STM32系列单片机拥有丰富的USART外设,以下以STM32F103C8T6为例(使用USART2):
E22/E32/E220模块 | STM32引脚 | 说明 |
M0 | PB0 | 模式控制 |
M1 | PB10 | 模式控制 |
RX | PA3 (USART2_RX) | 硬件串口接收 |
TX | PA2 (USART2_TX) | 硬件串口发送 |
AUX | PA0 / PA1 | 状态检测 |
驱动库实例化代码:
cpp
#include "LoRa_E22.h"
// STM32需先实例化HardwareSerial
HardwareSerial Serial2(USART2);
// 构造函数参数:Serial对象, AUX, M0, M1
LoRa_E220 e220ttl(&Serial2, PA0, PB0, PB10);
对于RP2040芯片,同样可以利用其硬件串口进行高效通信:
E220模块 | Pico引脚 | 说明 |
M0 | GPIO10 | 模式控制 |
M1 | GPIO11 | 模式控制 |
RX | GPIO9 (UART1_RX) | 硬件串口接收 |
TX | GPIO8 (UART1_TX) | 硬件串口发送 |
AUX | GPIO2 | 状态检测 |
并非所有LoRa模块都是简单的“串口透传型”,如果您使用的是SPI接口模组或带MCU底板的评估套件,接线方式大不相同。
此类模块内部仅包含射频收发芯片(如SX1262、LLCC68),不带MCU,需要主控MCU通过SPI接口直接控制射频芯片寄存器。
核心引脚连接:
模块引脚 | 功能 | 主控MCU连接说明 |
MISO | SPI数据输出 | 连接MCU的SPI_MISO |
MOSI | SPI数据输入 | 连接MCU的SPI_MOSI |
SCK | SPI时钟 | 连接MCU的SPI_SCK |
NSS | 片选 | 连接MCU的SPI_CS,低电平有效 |
RESET/NRST | 模块复位 | 连接MCU任意GPIO,低电平复位 |
BUSY | 状态指示 | 连接MCU任意GPIO,必须等待BUSY拉低才能发指令 |
DIO1/DIO2 | 中断/射频控制 | DIO1常作中断输入;DIO2若短接TXEN,则软件需使能DIO2射频开关控制功能 |
RXEN/TXEN | 收发开关控制 | 若未短接DIO2,则必须连接MCU两个GPIO,由软件逻辑控制收发切换 |
此类评估板已经将LoRa模块焊接在带有STM32F103的底板上,对外提供排针接口,主要用于快速评估,无需再操心模块级接线,只需关注底板排针定义:
1. 供电跳线:底板上的VCC与2号脚短接给模块供电,VIO与3号脚短接给MCU供电。
2. 通信接口:直接使用底板引出的TXD、RXD连接USB转串口或您的MCU。
3. SPI控制脚:底板已将模块的MISO(MOSI/SCLK/NSS)接至底板MCU的PB7(PB6/PB5/PB4),如需用自己MCU控制,需通过底板预留的测试点飞线。
① 排查1:检查VCC和GND是否接反或虚接,使用万用表测量模块VCC引脚电压是否在手册规定范围内。
② 排查2:检查TXD/RXD是否接反。记住永远是TX连RX,RX连TX。
③ 排查3:波特率是否匹配?模块出厂默认通常为9600或115200,请确保MCU串口初始化波特率与模块一致。
2. 能读取模块配置,但无法修改参数?
原因:LoRa模块必须在休眠模式(M0=1, M1=1)下才能写入配置参数。请检查M0、M1引脚是否正确连接并在代码中拉高。
① 排查1(电源):射频模块对电源纹波极度敏感。手册强调:电源输入端需增加一颗不低于47uF的低ESR电容,特别是E22-XXXT37S这类大功率模组。
② 排查2(射频):检查ANT引脚是否悬空!即使不接天线,也不能让射频输出脚悬空,否则会反射烧毁功放。
③ 排查3(电平):5V单片机驱动3.3V模块时,若RXD信号不够高,会导致模块不断接收错误数据。务必按要求增加上拉电阻或电平转换芯片。
LoRa模块的硬件连接看似只是几根线的对接,实则是电源、电平、时序和射频特性的综合考量。遵循“查手册、认电平、交串口、配模式、稳供电”的十五字方针,就能为后续的无线通信打下最坚实的基石。在硬件连接无误的基础上,再配合Arduino/STM32成熟的驱动库,您将轻松跨越LoRa开发的门槛,让数据飞越千山万水。
今天的分享就到这里啦,EBYTE每一天都致力于更好的助力物联化、智能化、自动化的发展,提升资源利用率,更多LoRa模组产品和LoRa技术资料,感兴趣的小伙伴可以登录我们的亿佰特官网和企业公众号(微信号:cdebyte)进行了解,也可以直接拨打400电话咨询技术专员!
相关阅读:
2、LoRa传输距离有多远?LoRa模组实际应用中能传几公里?
联系我们:
技术支持:support@cdebyte.com 销售咨询:4000-330-990
7 X 24 销售服务热线
4000-330-990©© 成都亿佰特电子科技有限公司【版权所有】 蜀ICP备13019384号


