做嵌入式这些年,接触过不少串口屏。
从最早的 Nextion、迪文,到后来各种国产组态屏,本质上大家解决的都是同一个问题:
让不会写 LCD 驱动的人,也能快速做出一个人机界面。
但真正项目做多了以后会发现:
界面从来不是最麻烦的。
最麻烦的是通讯。
很多串口屏的痛点,其实在主控单片机
很多厂家宣传:
支持按钮
支持曲线
支持动画
支持图片
支持视频
这些当然重要。
但对于工程师来说,更头疼的是下面这种情况:
温度传感器发来一包数据:
AA 55 01 02 03 04 05 06
串口屏根本看不懂。
于是主控 MCU 必须:
接收数据
解析协议
提取温度
转换成字符串
拼接串口屏命令
再发送给串口屏
整个链路变成:
传感器
↓
MCU解析
↓
重新封包
↓
串口屏显示
很多项目里 MCU 最后变成了“协议搬运工”。
CPU 时间浪费了不少。
代码量也越来越大。
三易串口屏有个容易被忽略的功能
第一次看三易开发指南的时候。
我其实最感兴趣的不是 GIF、音频、视频。
而是:
协议解析器控件。
这个控件有一个特点:
每收到一次串口数据,就自动执行一次脚本。
什么意思?
假设下位机发来:
AA 55 00 64
其中:
AA55 = 帧头
0064 = 温度值100
以前做法:
MCU解析 → MCU计算 → MCU发送显示命令
现在做法:
MCU直接透传:
AA 55 00 64
串口屏内部脚本:
int temp;
temp = bytesToInt(data,2);
text1.txt = intToString(temp);
直接完成显示。
整个过程:
传感器
↓
MCU转发
↓
串口屏解析
↓
界面显示
MCU的工作量直接减少。
这意味着什么?
很多人觉得:
“不就是把代码从 MCU 搬到屏里面吗?”
其实不是。
它带来的变化非常大。
以前项目结构:
MCU
├──业务逻辑
├──通讯协议
├──界面协议
└──显示控制
现在:
MCU
├──业务逻辑
└──通讯协议
串口屏
├──界面逻辑
├──数据解析
└──显示控制
职责开始分离。
特别是做:
温控器
变频器
电源设备
环境监测仪
工业控制器
这类产品的时候。
效果非常明显。
一个真实的开发场景
比如变频器项目。
主控实时发送:
转速
电流
电压
故障码
温度
传统方式:
MCU不断发送:
wset speed.txt "1500"
wset current.txt "12.5"
wset temp.txt "35"
...
几十个变量不停刷新。
代码会越来越乱。
而协议解析方式:
MCU直接发:
AA55
1500
12.5
35
0001
串口屏自己拆包。
自己更新控件。
自己切换报警页面。
甚至自己播放报警音。
MCU只负责数据来源。
显示层彻底交给屏。
为什么很多人没意识到这个价值?
因为刚接触串口屏的人。
关注点通常是:
有没有漂亮界面
有没有动画
有没有曲线
这些东西看得见。
而协议解析器属于:
看不见。
但项目越大。
价值越高。
一个几十页界面的大项目。
真正花时间的不是画页面。
而是:
通讯协议维护。
如果屏幕自己能解析协议。
后期维护成本会下降很多。
我的看法
如果让我评价三易串口屏最值得研究的功能。
我不会选 GIF。
不会选视频。
也不会选曲线控件。
我会选:
协议解析器 + 类C语言脚本。
因为这意味着串口屏不再只是一个显示器。
它开始具备一部分边缘计算能力。
对于很多中小型工业设备来说:
这比多几个炫酷控件更有价值。
毕竟真正决定开发效率的,从来不是界面画得有多漂亮,而是系统架构是否合理。