Thonny+MicroPython+ESP32开发中Shell打印输出出现乱码�的问题求助
ESP32 + MicroPython + Thonny Shell输出规律乱码的解决思路
问题场景
使用Thonny开发ESP32的MicroPython程序时,Shell窗口中print语句的输出会插入一串�乱码,且乱码的出现存在明显规律(比如固定间隔触发)。
排查与解决方法
核对串口波特率
打开Thonny右下角的串口设备配置面板,确认波特率和ESP32代码中machine.UART初始化的波特率完全一致(默认多为115200)。两者不匹配是串口乱码的最常见原因。排查硬件干扰
- 更换一根屏蔽性好的短USB数据线,避免线材损坏或过长导致信号衰减
- 给ESP32外接独立电源,避免电脑USB供电不足引发的传输不稳定
- 暂时移除ESP32上的外接模块(如传感器、显示屏),排除外设对串口引脚的干扰
刷新MicroPython固件
当前使用的固件可能存在串口驱动缺陷,前往MicroPython官方下载对应ESP32型号的最新稳定版固件,通过Thonny的「工具」→「安装MicroPython到设备」重新刷入,确保刷写过程无报错。调整Thonny设置
- 进入「工具」→「选项」→「常规」,将编码设置为
UTF-8,避免编码不兼容导致的字符解析错误 - 关闭Thonny的「实时变量监控」功能,部分场景下该功能会抢占串口资源引发输出异常
- 进入「工具」→「选项」→「常规」,将编码设置为
降低输出频率
如果代码中print调用过于频繁,串口缓冲区溢出会导致丢包乱码。可以在print语句后添加import time; time.sleep(0.01)这类短延迟,降低输出速率。
内容的提问来源于stack exchange,提问作者scott
相关产品推荐
相关产品推荐

