源师兄软串口排错清单:扩展屏不显示、乱码的8个常见原因与修复方案
【免费下载链接】software-serial-module源师兄扩展项目: 软串口模块 | 由源师兄组织创建项目地址: https://gitcode.com/yuanshixiong/software-serial-module
源师兄软串口模块(software-serial-module)通过串口让主控板控制外接扩展屏,用来显示图片和文字。很多新手第一次搭好软串口,却发现扩展屏不显示、或者满屏乱码,不知道问题出在哪。本文整理了一份软串口排错清单,列出扩展屏不显示、乱码的 8 个常见原因与对应修复方案,帮你逐条自检、快速定位并解决问题。
先搞懂:软串口是怎么驱动扩展屏的
软串口模块只提供两块拖拽积木,理解它们的工作顺序,排错就成功了一半:
- 软串口|初始化引脚:从下拉框选一个引脚(默认 P8),程序会创建一个串口对象
suart_。积木定义见 blocksdef.js,底层串口对象由 library/SoftUART.py 创建。 - 软串口|发送:先选"字节串"或"字符串",再填入要显示的数据,通过串口发给扩展屏。
一句话记住:必须先"初始化引脚",再"发送"。绝大多数"不显示"问题,都出在这一步的引脚或顺序上。
排错前,先花 2 分钟做这两项自检
在逐项排查前,先确认两个最基本的条件,能排除一半的"玄学"问题:
- 硬件是否通电:扩展屏排线插牢、供电正常、指示灯状态正常。
- 积木顺序对不对:程序里"初始化引脚"积木是否在"发送"积木之前。
确认无误后,再按下面的 8 条清单逐一排查。
扩展屏不显示、乱码:8 个常见原因与修复方案
1. 软串口 TX 引脚选错,扩展屏收不到信号
- 症状:接线看着没问题,扩展屏始终毫无反应。
- 原因:初始化积木里选的引脚(默认 P8)与扩展屏实际连接的 TX 引脚不一致,信号根本没送到屏上。
- 修复:把 blocksdef.js 中下拉框的引脚改成扩展屏对应的引脚(可选 P1 / P2 / P8 / P12 / P15 / P16),重新运行。
2. 缺少"初始化引脚"积木,找不到串口对象
- 症状:运行报错、或提示找不到
suart_,屏幕没有任何输出。 - 原因:只放了"软串口|发送"积木,没放"软串口|初始化引脚",
suart_从未被创建。 - 修复:在"发送"积木前面加上"初始化引脚"积木,保证每次发送前串口对象都已建立。
3. 接线顺序错误,或 TX 与 RX 接反
- 症状:有时乱码、有时完全没反应,换个方向插就好了。
- 原因:主控的 TX 接到了扩展屏的 TX(应该 TX 对 RX),或者两端没有共地。
- 修复:让 TX→RX、RX→TX 交叉对应,并把两块板的 GND 接在一起共地。
4. 发送数据格式选错,中文字符出现乱码
- 症状:发英文正常,一发中文就变成乱码。
- 原因:发送积木里两种格式的处理逻辑不同——"字节串"会额外做一次 UTF-8 编码,"字符串"则直接写入,见 blocksdef.js。
- 修复:把数据格式切换成另一种再试;通常显示文字时选择"字符串"更稳妥。
5. RX 固定接在 P0,实际没接对
- 症状:偶尔能显示,但内容错位或乱码。
- 原因:软串口的 RX 在 library/SoftUART.py 中写死为 Pin(0),如果扩展屏的 TX 没接到 P0、或 P0 被其它功能占用,接收就会出错。
- 修复:把扩展屏 TX 接到主控 P0,并避免让 P0 承担其它用途。
6. 扩展屏供电不足,屏幕不亮或闪烁
- 症状:屏幕不亮、画面闪烁、或显示中途黑屏。
- 原因:扩展屏直接靠主控或劣质电源供电,电流跟不上,电压被拉低。
- 修复:用足流稳压电源独立给扩展屏供电,并让供电地与主控共地。
7. 通信速率(波特率)两端不一致导致乱码
- 症状:刚通电能正常显示几秒,随后整屏乱码。
- 原因:软串口与扩展屏的通信速率不匹配,换过屏或改过板子时尤其常见。
- 修复:确认扩展屏要求的通信速率,让软串口与之一致;不确定时可联系设备方核对默认速率。
8. 扩展屏固件版本或硬件本身故障
- 症状:上面 1~7 条全部排除,扩展屏仍然不正常。
- 原因:扩展屏固件版本与当前模块不匹配,或屏幕、排线本身损坏。
- 修复:重装或升级扩展屏固件,换一根排线,或用另一块能正常工作的屏做交叉验证。
一张对照表:按症状快速定位
不知道从哪条看起?先对着症状查表,直奔最可能的原因:
| 典型症状 | 最可能原因 | 快速修复动作 |
|---|---|---|
| 屏幕完全无反应 | TX 引脚选错 / 缺初始化积木 | 核对引脚、补上初始化积木 |
| 中文变乱码 | 数据格式选错 / 通信速率不匹配 | 切换"字节串↔字符串"、核对速率 |
| 乱码时有时无 | 接线接反 / RX 没接对 P0 | TX/RX 对调、共地、RX 接 P0 |
| 画面闪烁、中途黑屏 | 扩展屏供电不足 | 独立稳压供电并共地 |
| 以上全部排除 | 固件或硬件故障 | 重装固件、交叉换屏验证 |
还是不行?最后再排查这几点
如果照清单走完仍不理想,按下面的思路做最后定位:
- 先分清"屏的问题"还是"接线/程序问题":拿一块已知能正常工作的扩展屏 + 排线交叉验证,能快速缩小范围。
- 确认设备型号:扩展屏的设备名与描述定义在 config.json,确认你用的屏与模块支持的一致。
- 核对积木是否齐全:打开 category.json,"软串口|基础"分类下应包含"初始化引脚"和"发送"两块积木,缺一不可。
按这份软串口排错清单从上到下走一遍,绝大多数扩展屏不显示和乱码问题都能迎刃而解。
【免费下载链接】software-serial-module源师兄扩展项目: 软串口模块 | 由源师兄组织创建项目地址: https://gitcode.com/yuanshixiong/software-serial-module
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考