You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ESP32向Quectel BG95模块发送AT测试指令无响应问题问询

ESP32连接Quectel BG95模块AT指令无响应故障排查

正在尝试发送AT测试指令确认ESP32与蜂窝模块的连接正常,所用蜂窝模块为Quectel BG95,ESP32型号为ESP-WROOM-32UE,指令格式参考调制解调器官方手册。

初始测试代码

通过Arduino IDE上传C++代码,ESP使用RXD引脚GPIO 16、TXD引脚GPIO 17建立UART连接,代码如下:

#include <HardwareSerial.h>
int greenpower = 32;
int led = 33;

void setup() {
  Serial.begin(115200);  // 打开串口通信并等待端口打开
  Serial2.begin(115200,SERIAL_8N1,16,17);
  pinMode(led, OUTPUT); // 验证板级供电正常
  pinMode(greenpower, OUTPUT); // 控制外设供电
  digitalWrite(greenpower, HIGH); // 给外设上电
  digitalWrite(led, HIGH);  // 供电验证电路上电
  delay(1000);
}

void loop() {
  Serial.println("Started");
  Serial2.write("AT\r");
  while (!Serial2.available()) continue;
  while (Serial2.available()) {
    int g = Serial2.read();
    Serial.write(g);
    Serial.println(g);
  }
  delay(1000);
}

代码迭代及异常表现

针对反馈的问题已对代码做修改:在发送AT测试指令Serial2.write("AT\r");后添加了延时,且在指令末尾补充了回车符。上传程序后查看串口监视器,仅能看到“Started”输出,Serial.println(g);仅返回0,每个执行周期耗时长达15s。

后续尝试将Serial2.write("AT\r");替换为Serial2.println("AT\r")或Serial2.write("AT\r\n");,适配调制解调器AT指令的换行符要求。第一种替换无效果,第二种替换后触发MCU报错,错误日志如下:

19:48:21.715 -> Started
19:48:36.692 -> Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
19:48:36.692 -> Memory dump at 0x400d1c6c: b41f6520 92f01a64 a0a20022
19:48:36.692 -> Core 1 register dump:
19:48:36.692 -> PC      : 0x400d1c70  PS      : 0x00060530  A0      : 0x800d0db4  A1      : 0x3ffb1f50  
19:48:36.692 -> A2      : 0x3ffbdc5c  A3      : 0x00000000  A4      : 0x3f40012c  A5      : 0x00000010  
19:48:36.692 -> A6      : 0xffffffff  A7      : 0x00000008  A8      : 0x800d1c70  A9      : 0x3ffb1f10  
19:48:36.692 -> A10     : 0x00000001  A11     : 0x00000000  A12     : 0x3ffb8218  A13     : 0x00000000  
19:48:36.744 -> A14     : 0x00000000  A15     : 0xff000000  SAR     : 0x00000018  EXCCAUSE: 0x00000000  
19:48:36.744 -> EXCVADDR: 0x00000000  LBEG    : 0x4000c28c  LEND    : 0x4000c296  LCOUNT  : 0x00000000  

19:48:36.744 -> ELF file SHA256: 0000000000000000

19:48:36.744 -> Backtrace: 0x400d1c70:0x3ffb1f50 0x400d0db1:0x3ffb1f70 0x400d0c94:0x3ffb1f90 0x400d1499:0x3ffb1fb0 0x40086155:0x3ffb1fd0

19:48:36.744 -> Rebooting...
19:48:36.744 -> ets Jul 29 2019 12:21:46

19:48:36.744 -> rst:0xc (SW_CPU_RESET),boot:0x36 (SPI_FAST_FLASH_BOOT)
19:48:36.744 -> configsip: 0, SPIWP:0xee
19:48:36.744 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
19:48:36.744 -> mode:DIO, clock div:1
19:48:36.791 -> load:0x3fff0018,len:4
19:48:36.791 -> load:0x3fff001c,len:1044
19:48:36.791 -> load:0x40078000,len:10124
19:48:36.791 -> load:0x40080400,len:5856
19:48:36.791 -> entry 0x400806a8
19:48:37.869 -> Started

硬件验证结果

已确认UART物理连接正常,ESP的UART引脚需经过逻辑电平转换器将3.3V转换为1.8V后再连接蜂窝模块。
PCB上共焊接4根连接线:2根接ESP的RXD、TXD焊盘,另外2根接电平转换器1.8V侧通往调制解调器TXD、RXD的线路。示波器采集结果显示:

  • ESP TXD焊盘信号为0-2.7V波动,电平转换后信号为0-1.8V波动,发送通道电平转换功能正常
  • ESP RXD线路无有效波形,电平转换器MCU侧电平为3.3V,调制解调器侧电平为1.8V,基于发送通道的表现推断电平转换接收通道硬件无故障

波形采集所用测试代码如下(为适配示波器采集将发送频率调整为10ms):

#include <HardwareSerial.h>
int greenpower = 32;
int led = 33;

void setup() {
  Serial.begin(115200);  // 打开串口通信并等待端口打开
  Serial2.begin(115200,SERIAL_8N1,16,17);
  pinMode(led, OUTPUT); // 验证板级供电正常
  pinMode(greenpower, OUTPUT); // 控制外设供电
  digitalWrite(greenpower, HIGH); // 给外设上电
  digitalWrite(led, HIGH);  // 供电验证电路上电
  delay(1000);
}

void loop() {
  Serial.println("Started");
  Serial2.write(1);
  delay(10);
}

内容的提问来源于stack exchange,提问作者Feynman137

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 07:54:00