from machine import UART, Pin
import time
# 1. 初始化串口 1 (UART1)
# 常用参数:波特率 115200,TX 引脚 17,RX 引脚 18
uart = UART(1, baudrate=115200, tx=17, rx=18)
def loopback_test():
print("--- 开始串口回环测试 ---")
print("请确保引脚 17 (TX) 和 18 (RX) 已经短接\n")
test_msg = "Hello ESP32-S3 Loopback!"
# 清空接收缓冲区
if uart.any():
uart.read()
# 2. 发送数据
uart.write(test_msg)
print(f"已发送: {test_msg}")
# 3. 等待数据传输(根据波特率微调)
time.sleep(0.1)
# 4. 读取并验证
if uart.any():
received_data = uart.read().decode('utf-8')
print(f"已接收: {received_data}")
if received_data == test_msg:
print("✅ 测试通过:数据一致!")
else:
print("❌ 测试失败:数据不匹配。")
else:
print("❌ 测试失败:未收到任何数据,请检查硬件连接。")
# 运行测试
if __name__ == "__main__":
while True:
loopback_test()
time.sleep(2)