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

使用MicroPython初始化UART失败:ESP32与MAX485模块连接问题

问题分析与修正方案

核心错误1:UART引脚占用调试串口

ESP32的UART0默认使用GPIO1(TX0)和GPIO3(RX0),这两个引脚是用于和电脑通信的REPL调试串口。你在初始化UART1时指定了rx=3、tx=1,直接占用了调试串口的引脚,导致开发板无法和电脑进行数据交互,所以出现“不再响应”的现象。

核心错误2:RS485接线逻辑颠倒

MAX485的引脚功能:

  • DI:数据输入,用于接收来自MCU的发送信号,应该连接ESP32的TX引脚
  • RO:数据输出,用于向MCU发送接收信号,应该连接ESP32的RX引脚

你当前的接线是ESP32 RX → MAX485 DI、ESP32 TX → MAX485 RO,完全颠倒了收发方向,会导致数据传输失败。

额外需要完善的点:DE/RE引脚控制

MAX485的DE和RE引脚需要电平控制来切换收发模式(高电平发送,低电平接收),你需要在代码中初始化GPIO15为输出模式,并根据收发需求切换电平。

修正后的代码示例

from machine import UART, Pin

print("hello")
# 改用UART1的非调试引脚,比如RX=16,TX=17(可根据你的开发板引脚资源调整)
uart = UART(1, baudrate=9600, bits=8, parity=None, stop=1, rx=16, tx=17)
# 初始化DE/RE控制引脚
de_re = Pin(15, Pin.OUT)
de_re.value(0)  # 默认设为接收模式
print("bye")

修正后的接线对应

ESP32MAX485
TX(17)DI
RX(16)RO
GPIO15DE & RE

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 16:15:27