外观
串口通信 FAQ
协议正文请先阅读:通信与变量。
适用范围: VTx(VTc / VTb)。下文帧头举例默认
A5 5A,以工程屏参配置为准。
通讯不上、返回数据不对,怎么查?
按下面顺序排查,多数问题出在前几步:
- 接口类型与电平:TTL / RS-232 / RS-485 是否与接线、转接板一致(见下文「串口电平」)
- 共地:MCU 与屏的 GND 必须共地;线过长、接触不良、干扰会导致时好时坏
- 波特率:屏参、MCU、串口调试助手三者必须一致(常用
115200) - 线序:TX/RX 交叉(MCU TX → 屏 DIN,屏 DOUT → MCU RX)
- 指令格式:帧头、指令长度、CRC 开关是否与屏参一致;用 HEX 发送,不要当 ASCII 文本发
抓包对照 帧格式、串口指令。屏左上角报 00 11 时见 Error Code。
波特率应该设多少?为什么返回指令不对?
- 工程默认常用 115200;在 屏参配置 中设定后,MCU 与调试助手必须改成同一值。
- TTL 接口在硬件允许时可更高(部分机型可达更高波特率);RS-232 常见上限约 115200,以目标机型说明书为准。
- 「返回不对」优先怀疑:波特率不一致、帧头不一致、是否误开/误关 CRC、指令长度算错。
通讯时好时坏、共地问题?
MCU 与屏 必须共地。时好时坏常见原因:地线未接或虚焊、线过长、接触不良、强干扰。处理:缩短线材、换线、加粗共地、远离强电与变频器走线。
串口电平是多少伏?
- TTL:逻辑电平通常为 3.3V,多数场景可兼容 5V MCU 的 TX→屏方向;屏 DOUT→MCU RX 若 MCU 的 VIH 偏高,可能收不到数据,见下文「5V MCU 与 3.3V TTL 屏」。
- RS-232 / RS-485:电平与接法以目标机型硬件手册为准;带「TTL+RS232 二选一」跳线的板卡,RS-232 侧往往不是标准 ±12V 驱动能力,不要当工业标准 232 端口硬接。
485 多个屏接同一个主板,如何区分?
每个屏在 屏参配置 中设置 不同的指令帧头(对应寄存器中的帧头配置)。MCU 按目标屏的帧头组帧发送;屏应答也带各自帧头,便于总线区分。详见 帧格式 · 指令帧头。
指令发出去屏不响应,或只响应一部分,为什么?
优先查 指令长度是否算错:
- 长度字段统计的是 指令码及之后的全部字节(不含帧头)
- 启用 CRC 时,长度须 计入 尾部 2 字节 CRC
- 长度与实际数据字节数不一致时,屏可能整帧丢弃,或只解析前面一段
单条指令的长度字段为 1 字节,整帧「指令及之后」最长约 255 字节;大数据请拆成多条发送。细则见 帧格式、CRC 校验。
上电后发指令没反应,为什么要先读版本号?
屏上电启动需要一段时间(量级约 2 秒,以实机为准)。启动完成前发出的写指令可能被丢弃。建议流程:上电后先发 读版本(寄存器 0x00,指令 0x81),收到合法应答后再发写指令。示例见 常用寄存器 · 版本。
0x80、0x81、0x82、0x83、0x84 指令分别做什么?
| 指令 | 作用 |
|---|---|
0x80 | 写寄存器(按字节) |
0x81 | 读寄存器 |
0x82 | 写变量存储器(按字) |
0x83 | 读变量存储器 |
0x84 | 写曲线缓冲区(配合实时曲线) |
另有扩展指令 0x85(子命令)。完整帧结构见 串口指令。
自己计算 CRC 校验码总是不对?
CRC 不包含帧头与指令长度,只对「指令码及之后的数据」计算;启用后长度字段要计入 CRC 两字节。算法与示例见 CRC 校验。
亮度、蜂鸣器、复位、触控开关对应哪些寄存器?
| 功能 | 寄存器 | 说明 |
|---|---|---|
| 亮度 | 0x01 | 0x00–0x40 |
| 蜂鸣 | 0x02 | 蜂鸣时间,单位 10ms |
| 触控开关 | 0x0B | 写 0x00 禁用触控;其它值启用(上电默认常为 0xFF) |
| 软件复位 | 0xEE–0xEF | 连续写 0x5A A5(即字值 0x5AA5)触发一次复位 |
如何切换页面和读取当前页面?
向寄存器 0x03–0x04 写入 2 字节页面 ID(高字节在前);读取同样读这两个寄存器。页面 ID 不能只发一个字节。示例见 常用寄存器 · 切页。
复位指令是什么?
向寄存器 0xEE、0xEF 写入 0x5A、0xA5(即 0x5AA5)触发软件复位一次。帧举例:
text
A5 5A 04 80 EE 5A A5以目标机型固件为准。见 寄存器一览。
如何关闭触摸?
写寄存器 0x0B(TPC_Enable) 为 0x00 禁用触控;写非 0 值恢复。也可切到无触摸控件的页面作为权宜办法。
text
A5 5A 03 80 0B 00读取版本号 / 固件版本怎么发?
读寄存器 0x00(Version,BCD)。常用于判断屏是否已启动、联调链路是否通:
text
A5 5A 03 81 00 01见 常用寄存器 · 版本。
触摸不准 / 偏移怎么校准?
写寄存器 0xEA = 0x5A 启动一次校准,按屏上提示点击十字点。批量生产也可在屏参中勾选「TF 卡下载配置文件后启动触摸校准」。电阻屏可重新校准;电容屏一般不需校准,灵敏度以屏参/硬件说明为准。见 常用寄存器 · 触摸校准。
按键语音和蜂鸣器为什么相互影响?
触摸有效区伴音与蜂鸣器常由同一套屏参/寄存器位控制。关闭触摸伴音(寄存器 0x1C 相关位,或屏参中的伴音选项)后,按键蜂鸣可能一并消失;仍可用寄存器 0x02 单独控蜂鸣时长。详见 常用寄存器 · 屏参动态配置 与 语音与伴音。
屏保 / 休眠导致亮度自动恢复、触摸唤醒怎么办?
亮度过低或屏保延时到时会进入屏保/休眠类行为(具体以固件为准)。可在 屏参配置 中关闭屏保,或把屏保亮度设为较小非零值(例如 1),避免完全黑屏后触摸唤醒带来的亮度跳变。运行时也可用寄存器 0x12 / 0x16–0x18 / 0x1D 动态改屏保(掉电不保存),见 常用寄存器。
如何掉电保存数据或亮度?
- 开机亮度、屏保、波特率、帧头等:在 VGUS Next 屏参配置 中设置后重新生成并下载,随配置文件掉电保持。
- 业务变量掉电保持:VTc / VTb 可通过用户数据库
UserDb.bin(寄存器0x56–0x5F)经变量区中转读写,见 常用寄存器 · 数据库。 - 采样缓冲的掉电选项见 数据采样。运行时用
0x12等改的屏保参数本身掉电不保存。
描述指针有什么用?怎么改颜色、位置、小数位?
描述指针用于运行时临时改控件显示格式(颜色、位置、整数位/小数位、图标等)。默认 FFFF 关闭。启用后用 0x82 向「基址 + 偏移」写格式字。详见 描述指针 与分类偏移表。部分效果以实屏为准。
描述指针重叠会怎样?
会导致颜色异常、位置错乱、数据不显示等。描述区之间、以及描述区与业务变量地址 均不得重叠。用 地址地图 检查。
变量地址重叠、辅助地址重叠会怎样?
会导致数据变量显示错误、图标错乱、按钮返回值错误、文本互相干扰。按变量类型计算占用字数;辅助类地址按控件说明预留间隔(常见建议隔开足够字地址,以属性面板与地址地图为准)。
清空基本图形、曲线、二维码发什么?
- 基本图形:向该控件变量起始地址写入清空约定(常见为写
0000等,以开发指南图形命令为准);一个控件发新绘图流通常会覆盖/清空先前图形。见 基本图形。 - 实时曲线:写寄存器
0xEB清除曲线缓冲(如0x55清全部),见 串口指令 · 0x84。 - 二维码:向内容指针区写入结束/空内容(常见
0000/FFFF结束约定),见 二维码。
常见问题(速查)
问:0x82 和 0x80 有什么区别?
答:0x80/0x81访问寄存器(按字节);0x82/0x83访问变量存储器(按字)。详见 串口指令。问:左上角出现 Error Code?
答: 见 Error Code 错误代码。
串口电平与接线异常
串口屏按型号可能提供 TTL / RS-232 / RS-485。其中 TTL 为 3.3V 逻辑。MCU 为 5V TTL 时,可能出现「屏能收、MCU 收不到」或偶发花屏/乱码。
5V MCU 与 3.3V TTL 屏
| 方向 | 建议 |
|---|---|
MCU TXD → 屏 DIN | 屏端输入有保护,一般可直接连接 |
屏 DOUT → MCU RXD | 若 MCU 要求的「输入高电平最小值」高于约 3.3V(例如部分 5V 芯片 VIH≈4V),直接相连会导致 MCU 收不到屏数据 |
处理:在 MCU RXD 侧加 电平转换(如 74HCT245),或改用 RS-232 接口机型/转接。
是否可直连,以 MCU 数据手册的 VIH 为准:VIH 明显低于 3.3V 的 5V 芯片(如部分 51 系列 VIH≈2V)往往可直连;VIH 偏高的则必须转换。
MCU TXD 口线模式
强烈建议将与屏相连的 MCU TXD 设为推挽输出,不要用弱上拉准双向。
弱上拉驱动能力不足时:空载看波形尚可,接上屏后高电平被拉低到临界区,易出现:
- 变量显示错位、乱码、异常字符
- 手碰线材即出错
示波器对比「未接屏 / 已接屏」的 TXD 高电平;接屏后明显偏低则优先改推挽。
排查顺序建议
- 确认接口类型(TTL / 232 / 485)与线序(TX/RX 交叉、GND 共地)
- 核对波特率、帧头、CRC 与 帧格式
- 查电平与 TXD 驱动模式(本节)
- 屏报
00 11异常指令时,对照抓包与 Error Code