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

树莓派Pico发送AT命令时ESP-01无响应的原因排查

排查ESP-01与Raspberry Pi Pico连接后无AT响应的问题

咱们一步步拆解可能的原因,你已经做了不少基础验证,那从几个容易忽略的关键点入手:

1. 代码的致命笔误导致程序中断

看你贴的MicroPython代码,有个明显错误:while True循环里第一次判断if t:时,t还未被定义,会直接抛出NameError导致程序停止——模块根本没机会收到你发送的AT命令。

修正后的代码补充了串口参数定义和正确的读取逻辑:

from machine import UART
import time

# 明确串口参数,和ESP-01默认参数匹配:8位数据位、无校验、1位停止位
uart = UART(0, baudrate=9600, bits=8, parity=None, stop=1)

def write(msg):
    print("Sending %s" % msg)
    uart.write(msg)

write('AT\r\n')

while True:
    t = uart.readline()
    if t:
        # 把字节数据解码为字符串并去除多余换行符
        print(t.decode('utf-8').strip())
    # 加短延时避免循环占用过多CPU
    time.sleep(0.1)

2. 确认ESP-01的启动模式是否正确

ESP-01的启动模式由GPIO0引脚状态决定:

  • 若GPIO0接地,模块会进入烧录(下载)模式,此时不会响应AT命令
  • 正常工作模式需要GPIO0浮空或接3.3V高电平

检查你的ESP-01模块,是否不小心将GPIO0接到GND了?启动时务必保证GPIO0处于高电平或浮空状态。

3. 电源稳定性问题(容易被忽略)

你用了独立3.3V电源,但ESP-01即使在响应AT命令的初始化阶段,电流波动也可能超过小功率电源的承载能力,导致模块复位或通信紊乱。建议:

  • 更换输出电流≥500mA的3.3V电源(比如带滤波的稳压模块)
  • 确认Pico与ESP-01的GND可靠共地,虚接会直接导致串口信号失效

4. 串口接线的细节核对

虽然你标注的接线逻辑是对的(Pico TX→ESP RX,Pico RX→ESP TX),但实际接线时很容易搞混:

  • 再次核对引脚:Pico的UART0 TX是GPIO0,RX是GPIO1;ESP-01的TX是引脚2,RX是引脚3
  • 检查接线是否存在虚焊或接触不良,尤其是串口信号线和GND

5. 串口参数的严格匹配

ESP-01默认串口参数为9600波特率、8N1(8位数据位、无校验、1位停止位),初始化UART时一定要明确这些参数,避免MicroPython默认值与模块不匹配(比如部分版本默认停止位为2位,会直接导致通信失败)。

6. 模块硬件故障排查

如果以上都验证过仍无响应,可能是ESP-01模块本身的硬件问题?比如串口引脚损坏?不过你用USB适配器能正常工作,这个可能性较低,但可以尝试更换一个ESP-01模块测试。

内容的提问来源于stack exchange,提问作者Sean O'Rourke

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 20:02:43