1. 项目概述当工业除垢遇上智能交互在工业设备运维领域超声除垢技术以其非接触、高效、环保的特点正逐步替代传统的化学或机械除垢方式。然而一套先进的除垢系统其“智能”与否不仅取决于核心的超声发生与控制算法更在于人机交互HMI的直观性与可靠性。操作人员需要通过一个界面清晰、响应迅速、设置便捷的终端来监控设备状态、调整运行参数、查看历史数据。这正是我们这次要深入探讨的“串口屏解决方案”在超声智能除垢行业落地的核心价值。简单来说这个项目就是为超声除垢设备“装上一个聪明又好用的眼睛和嘴巴”。我们选用大彩串口屏作为这个交互终端它通过简单的串口如UART与设备的主控制器通常是STM32、GD32等MCU通信承担起所有界面显示、触摸操作和数据呈现的任务。对于设备制造商而言这意味着无需投入大量精力从头开发复杂的图形界面和触摸驱动可以将研发资源聚焦于核心的超声功率控制、频率跟踪、除垢效率算法等更有技术壁垒的环节。大彩串口屏提供的是一套“开箱即用”的HMI解决方案从底层驱动到上位机开发工具都打包好了极大地加速了产品化进程。这套方案适合谁首先是超声除垢设备的生产厂商和研发工程师他们正苦于如何快速打造一款具有市场竞争力的高端人机界面。其次是自动化系统的集成商需要为客户的除垢工站配置一个稳定可靠的操作面板。甚至对于有一定电子基础的行业爱好者想为自己设计的除垢装置添加智能化监控功能这套方案也提供了极低的入门门槛。它的核心价值在于用标准化的模块化解耦了硬件交互与核心控制让专业的人专注做专业的事。2. 方案选型与核心优势解析2.1 为什么是串口屏对比传统方案在为大功率超声除垢设备选择人机界面时常见的方案主要有三种裸屏自主开发、组态屏、以及串口屏。我们来逐一拆解其优劣。方案一裸屏LCD触摸屏 自主开发驱动与GUI这是最“硬核”的方案。工程师需要自行选型LCD显示屏和触摸屏电阻或电容在MCU上移植或编写底层显示驱动如LTDC、FSMC接口驱动、触摸驱动如读取ADS7843等芯片并在此基础上构建图形库如LVGL、emWin和业务逻辑。它的优势是硬件成本理论上最低且拥有最高的定制自由度。但劣势极其明显开发周期漫长需要深厚的底层驱动和图形学知识稳定性考验大触摸抗干扰、界面刷新效率等问题都需要大量调试人力成本高昂。对于超声除垢设备这类对可靠性要求高、且产品迭代速度要求越来越快的工业产品这个方案往往因投入产出比过低而被放弃。方案二组态屏组态屏通常内置了强大的实时操作系统和组态软件可以通过PC软件进行“组态”式开发功能非常强大适合复杂的大型SCADA系统。但它通常价格昂贵体积较大软件授权费用也可能不菲。对于超声除垢设备这种功能相对聚焦参数设置、状态监控、曲线显示、报警记录的单机设备而言组态屏的功能严重过剩会带来不必要的成本压力和学习成本。方案三串口屏以本项目选用的大彩串口屏为例串口屏完美地找到了前两者之间的平衡点。它本质上是一个集成了显示屏、触摸屏、图形处理器和嵌入式系统的完整模块。开发者无需关心任何底层驱动只需通过UART、SPI等串行接口按照特定的指令集向屏幕发送“画线”、“显示图片”、“更新文本”等命令或者接收屏幕上传的“按钮被按下”等事件。大彩为其屏幕提供了配套的GUI开发软件如VisualTFT开发者可以像设计PPT一样在电脑上拖拽控件、设置属性、编辑图片然后一键下载到屏幕中。对于超声除垢行业大彩串口屏的核心优势凸显在开发效率革命性提升GUI设计与业务逻辑完全分离。UI工程师用上位机工具专心设计美观专业的界面嵌入式工程师只需编写简单的串口收发解析代码。项目周期可从数月缩短至数周。稳定性有保障屏幕的显示、触摸、图形渲染均由屏内独立的CPU负责与主控MCU互不干扰。避免了在主控资源紧张时界面卡顿、触摸失灵的问题。大彩屏的工业级设计也保证了在电磁环境复杂的大功率超声设备旁能稳定工作。成本可控相比组态屏串口屏价格亲民相比裸屏方案它节省了大量隐形成本开发人力、时间、试错成本。功能贴合需求支持实时曲线显示用于展示功率、频率、水温等变化趋势、数据记录、报警弹窗、多语言切换、配方管理等功能与超声除垢设备的监控需求高度匹配。2.2 大彩串口屏的关键技术特性选型确定了串口屏路线后具体选型时需要考虑以下几个与超声除垢应用强相关的技术点1. 屏幕尺寸与分辨率超声除垢设备的操作界面需要显示的信息较多实时功率、工作频率、水温、流量、工作时间、运行状态、历史曲线、报警信息等。建议选择7寸或10.1寸分辨率800480或1024600的屏幕。这个尺寸既能容纳足够多的信息又不会让设备面板显得过于笨重。大彩在这类尺寸上有丰富的产品线如DMG系列。2. 触摸类型电阻屏 vs 电容屏电阻屏需要轻微压力触发可戴手套操作成本较低但透光性稍差长时间使用可能存在校准漂移。适合环境恶劣、操作人员可能戴手套的工业现场。电容屏支持多点触控手感流畅透光性好但戴普通手套无法操作对水渍、油污更敏感。 对于超声除垢设备其安装环境可能在车间操作人员可能佩戴劳保手套。因此电阻屏往往是更稳妥的选择。大彩的工业级串口屏多采用高品质四线电阻屏并提供便捷的校准指令可靠性很高。3. 通信接口与协议大彩屏主要支持UARTTTL电平和SPI接口。对于大多数基于MCU的除垢控制器UART是最通用、最方便的选择。协议方面大彩采用自主定义的指令集格式清晰例如更新某个文本控件内容的指令可能是AA 55 文本控件ID 数据长度 具体内容 CRC。开发者需要编写的代码就是封装和解析这些指令帧。大彩也提供Modbus RTU从站协议选项如果主控端习惯使用Modbus可以无缝接入。4. 存储与多媒体支持超声除垢设备可能需要显示公司Logo、设备结构图、操作指南动画等。大彩屏支持内置Flash存储图片、字库甚至小视频。这对于提升产品品牌形象和用户体验很有帮助。需要评估界面所需的图片资源大小选择合适存储容量如32MB、64MB的型号。实操心得选型避坑指南不要一味追求高分辨率和大尺寸。分辨率越高界面图片资源越大下载到屏内的时间越长对主控MCU的RAM缓冲区要求也可能更高。7寸800*480是一个经受了大量工业项目检验的“甜点”尺寸。另外务必索取屏体的ESD静电放电和群脉冲抗扰度测试报告确保其能在超声电源一个典型的电磁干扰源附近稳定工作。3. 超声除垢系统人机界面设计要点3.1 界面信息架构与流程设计一个优秀的工业HMI其核心是信息架构清晰操作流程符合直觉。对于超声除垢设备我们可以将界面划分为几个核心功能区主页/状态总览界面核心信息突出显示当前工作模式自动/手动、实时超声功率数字百分比进度条、工作频率、累计运行时间、本次除垢时长。关键状态指示灯用不同颜色的LED图标显示“电源”、“超声启动”、“报警”、“通讯”状态。一键操作入口放置最大的“启动/停止”按钮以及进入参数设置、数据查看、报警记录的导航按钮。设计要点避免信息过载。只放最关键、最常看的数据。功率和频率用大字体显示色彩对比度要高。参数设置界面分级菜单将参数分为“运行参数”如目标功率、频率范围、工作时间、“系统参数”如语言、背光时间、通讯地址、“高级参数”如PID调节系数、保护阈值通常密码保护。控件选择功率设置使用“数字输入框滑动条”组合方便快速粗调和精确微调。时间设置使用带增减按钮的数字控件。选项类参数如工作模式使用下拉菜单或单选按钮组。设计要点任何参数修改在点击“确认”前仅处于预览状态并需二次确认尤其是关键参数。提供“恢复默认值”按钮。实时监控与曲线界面这是体现“智能”的关键。除了数字显示最重要的是提供实时趋势曲线。可以同时绘制2-3条曲线例如功率设定值 vs 功率实际值、频率变化曲线、水温曲线。曲线控件功能支持缩放、平移查看历史段、光标跟随显示精确值。时间轴可切换如最近1分钟、10分钟、1小时。设计要点不同曲线用鲜明且易于区分的颜色。纵坐标轴要根据物理量如功率kW、频率kHz自动调整量程或允许用户固定量程。报警与历史记录界面实时报警条在屏幕顶部或底部常驻一个报警条当发生报警时滚动显示最新的报警信息时间、代码、内容并伴随闪烁提示。历史报警查询以表格形式列出所有报警事件支持按时间、报警等级筛选。大彩屏的列表控件可以很好地实现此功能。设计要点报警信息必须包含精确到秒的时间戳。区分“警告”黄色可继续运行和“故障”红色需停机。提供“报警确认”和“报警复位”功能。数据记录与导出界面运行数据日志记录关键参数如每小时的平均功率、最高温度等到屏内Flash或外接U盘。配方功能针对不同材质管道如不锈钢、铜、碳钢或不同垢种碳酸钙、硫酸钙可以保存多组最优工作参数功率、频率、时间一键调用。设计要点数据记录格式建议为CSV方便用电脑Excel打开分析。配方管理要有明确的命名和导入导出功能。3.2 大彩VisualTFT工具实操从零构建主界面我们以创建一个简单的状态总览界面为例演示开发流程工程创建与基础设置打开大彩VisualTFT软件新建工程选择对应的屏型号如DMG10768C080_03WTC。设置工程分辨率背景色通常设为深灰色如RGB(50,50,50)以减少视觉疲劳并增加对比度。控件拖拽与属性设置文本显示功率从工具箱拖入“文本”控件。将其命名为txt_power。在属性栏设置其字体为Arial Black大小36颜色为亮绿色RGB(0,255,0)。将其文本内容初始化为“0.0 kW”。进度条功率百分比拖入“进度条”控件。命名为bar_power。设置其方向为水平最小0最大100当前值50。修改前景色为蓝色背景色为深灰色。指示灯运行状态拖入“图片”控件用于显示LED灯。你需要准备两张小图片绿色圆形运行中和灰色圆形停止。将控件命名为led_run。在属性中设置其“图片”为绿色LED图片。我们后面通过指令来切换图片。按钮启动/停止拖入“按钮”控件。命名为btn_start_stop。设置其文本为“启动”字体颜色白色按下态背景色变化以提供反馈。事件与指令关联这是最关键的一步建立界面与主控MCU的逻辑联系。选中btn_start_stop按钮在属性窗口找到“触摸事件”或“释放事件”。点击后面的编辑按钮进入指令生成器。我们需要定义当按钮被按下后屏幕向MCU发送什么数据。例如可以定义发送一个单字节的命令码。在指令生成器里添加一条指令数据区设置为0x01假设0x01代表启动命令。同时我们还需要让按钮的文本和LED灯状态能根据MCU返回的状态进行更新。这需要MCU定时如每秒向屏幕发送状态数据包屏幕通过“数据变量”控件或LUA脚本解析后更新对应的文本、进度条和图片控件。模拟与调试VisualTFT提供模拟器功能可以在电脑上初步检查界面布局和逻辑。更重要的调试是“在线模拟”通过USB转TTL工具将屏幕与电脑连接软件可以直接将界面下载到屏幕并实时调试观察串口通信数据极大提高效率。注意事项通信协议设计是灵魂界面设计是皮肉通信协议是筋骨。必须在一开始就设计好一套简洁、健壮、可扩展的串口通信协议。建议采用“帧头命令字数据长度数据域校验和”的格式。例如MCU - 屏0xAA 0x55 CMD_LEN DATA0...DATAn CRC用于更新所有界面数据。屏 - MCU0xBB 0x66 CMD_LEN DATA0...DATAn CRC用于上传触摸事件。 将所有需要同步的变量功率、频率、状态字等打包在一帧内定时发送而不是每个变量变化就发一帧可以减少串口中断频率提高系统稳定性。4. 嵌入式端驱动开发与集成4.1 MCU端串口驱动与协议解析屏幕界面做好后主控MCU需要具备与之通信的能力。我们以STM32的HAL库为例说明关键步骤。硬件连接将大彩屏的TX引脚接MCU的RX引脚如USART1_RX屏的RX接MCU的TX。确保共地GND。屏的电源需稳定建议单独一路5V/2A以上的电源供电避免因功率不足导致花屏或重启。串口初始化// stm32f1xx_hal_msp.c 或主函数中 UART_HandleTypeDef huart1; huart1.Instance USART1; huart1.Init.BaudRate 115200; // 与大彩屏工程设置一致 huart1.Init.WordLength UART_WORDLENGTH_8B; huart1.Init.StopBits UART_STOPBITS_1; huart1.Init.Parity UART_PARITY_NONE; huart1.Init.Mode UART_MODE_TX_RX; huart1.Init.HwFlowCtl UART_HWCONTROL_NONE; huart1.Init.OverSampling UART_OVERSAMPLING_16; HAL_UART_Init(huart1); // 开启接收中断 HAL_UART_Receive_IT(huart1, rx_buffer, 1); // 先接收一个字节协议解析状态机 在串口中断服务程序或DMA完成回调中实现一个简单的状态机来解析屏发来的指令帧。// 示例状态机 typedef enum { STATE_HEADER1, STATE_HEADER2, STATE_CMD, STATE_LEN, STATE_DATA, STATE_CRC } uart_state_t; uart_state_t state STATE_HEADER1; uint8_t cmd, len, data_idx; uint8_t data_buf[64]; uint8_t calc_crc, recv_crc; void UART_RxCallback(UART_HandleTypeDef *huart) { uint8_t byte rx_byte; // 获取收到的字节 switch(state) { case STATE_HEADER1: if(byte 0xBB) state STATE_HEADER2; // 假设帧头是0xBB 0x66 break; case STATE_HEADER2: if(byte 0x66) state STATE_CMD; else state STATE_HEADER1; break; case STATE_CMD: cmd byte; state STATE_LEN; break; case STATE_LEN: len byte; data_idx 0; if(len 0) state STATE_DATA; else state STATE_CRC; break; case STATE_DATA: data_buf[data_idx] byte; if(data_idx len) state STATE_CRC; break; case STATE_CRC: recv_crc byte; calc_crc calculate_crc(...); // 计算之前收到的数据的CRC if(calc_crc recv_crc) { process_command(cmd, data_buf, len); // 处理有效命令 } state STATE_HEADER1; // 重置状态机准备接收下一帧 break; } // 重新开启接收中断 HAL_UART_Receive_IT(huart, rx_byte, 1); }命令处理函数 在process_command函数中根据解析出的cmd执行相应操作。void process_command(uint8_t cmd, uint8_t* data, uint8_t len) { switch(cmd) { case CMD_BUTTON_PRESS: // 例如0x01代表按钮按下 if(len 1) { uint8_t button_id data[0]; if(button_id ID_BTN_START) { // 执行启动超声发生器的逻辑 start_ultrasonic(); // 更新状态标志以便在定时更新任务中发给屏幕 system_status STATUS_RUNNING; } } break; case CMD_PARAM_SET: // 参数设置 // 解析数据更新相应的运行参数变量 break; // ... 其他命令 } }4.2 定时数据更新与界面同步屏幕上的动态数据功率、频率等需要主控MCU主动、定时地发送。通常在主循环或一个定时器中断中实现。// 定义一个用于组包发送的结构体或缓冲区 typedef struct { uint16_t power; // 实际功率单位0.1kW uint16_t frequency; // 实际频率单位Hz uint8_t status; // 状态字bit0:运行bit1:报警... uint16_t temperature;// 温度单位0.1℃ // ... 其他数据 } screen_data_t; screen_data_t g_screen_data; void update_screen_data_task(void) { // 此函数被每秒调用一次 // 1. 更新结构体数据 g_screen_data.power get_actual_power() * 10; // 转换为整数发送 g_screen_data.frequency get_actual_frequency(); g_screen_data.status (system_running ? 0x01 : 0x00) | (has_alarm ? 0x02 : 0x00); g_screen_data.temperature get_temperature() * 10; // 2. 封装成符合大彩指令格式的帧 uint8_t tx_buffer[64]; tx_buffer[0] 0xAA; // 帧头 tx_buffer[1] 0x55; tx_buffer[2] CMD_UPDATE_ALL_DATA; // 命令字 tx_buffer[3] sizeof(screen_data_t); // 数据长度 memcpy(tx_buffer[4], g_screen_data, sizeof(screen_data_t)); // 拷贝数据 uint8_t crc calculate_crc(tx_buffer, 4 sizeof(screen_data_t)); // 计算CRC tx_buffer[4 sizeof(screen_data_t)] crc; // 3. 通过串口发送 HAL_UART_Transmit(huart1, tx_buffer, 5 sizeof(screen_data_t), 100); }实操心得优化通信与性能双缓冲与DMA对于数据量较大的界面如曲线数据使用DMA发送可以极大减轻CPU负担。同时构建一个发送双缓冲区当一帧数据正在通过DMA发送时下一帧数据可以在另一个缓冲区中准备实现无缝连续更新。差异更新并非所有数据都需要每秒全量更新。可以设计一种“差异更新”机制只有发生变化的数据才被发送。这需要屏幕端LUA脚本配合但能显著降低串口负载。心跳与看门狗除了数据更新帧可以增加一个简单的心跳包如MCU每秒发送一个0x55屏幕回复一个0xAA。任何一方超时未收到心跳即可判断通信故障触发界面显示“通讯中断”报警。MCU和屏幕内部看门狗也必须开启防止死机。5. 行业应用深化与高级功能实现5.1 贴合超声除垢工艺的特殊界面设计超声除垢有其独特的工艺参数和显示需求界面设计需要深度结合业务逻辑。功率-频率匹配曲线显示 超声除垢的效率与换能器谐振频率匹配度密切相关。理想的界面不仅能显示实时频率更能展示一个“功率-频率”扫描曲线。实现方法MCU控制信号源进行频率扫描并记录每个频点下的输出功率将这一系列数据点频率功率打包发送给屏幕。屏幕端使用LUA脚本调用图形API动态绘制出曲线并自动标记出谐振峰点即最佳工作频率点。这为调试和维护提供了极大的直观性。多通道独立监控 对于大型除垢系统可能同时有多个超声换能器在工作。界面需要支持多通道视图。可以设计一个标签页Tab Control每个标签页内是一个独立的监控面板显示该通道的所有参数。或者采用矩阵式概览界面用多个相同的小控件组同时显示所有通道的关键状态运行/停止、功率、报警点击任一通道可进入其详细控制页。能效计算与统计界面 “智能”除垢的附加值体现在数据上。屏幕可以增加一个统计页面计算并显示本次除垢周期的总能耗kWh、预估除垢量、与历史平均水平的对比节能量。这些数据可以通过屏内LUA脚本进行简单计算和存储也可以通过MCU计算后发送给屏幕显示。这为终端客户提供了清晰的节能效益报告。5.2 利用大彩屏LUA脚本实现本地逻辑大彩串口屏的高级型号支持LUA脚本这相当于在屏幕端运行了一个轻量级的逻辑处理器可以分担MCU的很多工作。应用案例1本地报警逻辑与延时例如水温超过50℃需要报警但为了避免瞬间波动误报要求温度持续超过50℃达5秒才触发。这个逻辑完全可以放在屏幕的LUA脚本里实现-- 假设收到MCU发来的温度数据存储在变量current_temp中 local over_temp_timer 0 local alarm_active false function on_data_update() if current_temp 500 then -- 50.0度假设放大10倍传输 over_temp_timer over_temp_timer 1 -- 定时器每1秒触发一次此函数 if over_temp_timer 5 and not alarm_active then alarm_active true -- 在屏幕上显示红色报警图标和文字 set_visible(alarm_icon, true) set_text(alarm_text, 水温过高) -- 同时可以发送一个紧急命令给MCU请求降功率或停机 uart_send(0x01) -- 发送报警代码 end else over_temp_timer 0 if alarm_active then alarm_active false set_visible(alarm_icon, false) end end end这样MCU只需要源源不断地发送原始数据复杂的判断逻辑由屏幕完成降低了通信的复杂度和MCU的运算负荷。应用案例2本地数据记录与简单分析屏幕可以利用自身的Flash存储空间以CSV格式记录每小时的平均功率和最高温度。LUA脚本在整点时刻计算过去一小时内接收到的功率和温度数据的平均值与最大值然后追加写入到一个文件控件关联的存储区。用户可以通过界面上的“导出数据”按钮将日志文件复制到U盘。注意事项LUA脚本的边界LUA脚本能力强大但要明确边界它适合处理与界面交互紧密、逻辑判定多但计算量不大的任务。严禁将核心的控制算法如PID调节、频率跟踪放在LUA中。这些算法必须运行在实时性有保障的MCU上。屏幕和MCU的职责应该是MCU负责“控制与核心计算”屏幕负责“显示、交互与本地轻逻辑”。6. 系统联调、测试与常见问题排查6.1 系统集成测试流程当屏幕界面、MCU程序都开发完成后需要进行系统化的联调测试。通信基础测试使用USB转TTL工具连接屏幕和电脑用串口助手分别监听MCU发送的数据和屏幕发送的数据验证帧格式、数据内容是否正确。测试屏幕触摸事件是否能正确发出指令MCU是否能正确解析并响应如点亮一个测试LED。界面功能逐项测试显示测试让MCU发送各种边界值数据最小值、最大值、异常值检查屏幕显示是否正确有无乱码、溢出。控件交互测试点击每一个按钮、滑动每一个滑块、输入每一个文本框检查MCU端是否收到预期指令且执行了正确动作。动态更新测试模拟数据快速变化如功率从0%到100%阶跃观察曲线刷新是否流畅数字显示有无卡顿。环境与压力测试长时间运行测试连续上电运行72小时以上观察是否有内存泄漏界面卡死、通信中断等情况。干扰测试在超声电源工作时观察屏幕显示是否有花屏、闪烁触摸是否失灵。测试设备频繁启停对屏幕通信的影响。高低温测试如有条件在设备工作温度范围上下限测试屏幕的启动、显示和触摸性能。6.2 常见问题与排查技巧实录以下是在实际项目中踩过的一些坑和解决方法问题现象可能原因排查步骤与解决方案屏幕白屏或花屏1. 电源功率不足或电压不稳。2. 复位电路异常。3. 屏体硬件损坏。1. 用万用表测量屏幕电源引脚电压在5V左右且稳定。确保电源能提供足够电流通常需1A以上。2. 检查MCU给屏幕的复位信号是否正常。尝试手动复位屏幕。3. 连接电脑USB口单独给屏幕供电和通信排除主板问题。触摸不灵敏或漂移1. 电阻屏需要校准。2. 触摸屏表面有污渍或磨损。3. 电磁干扰严重。1. 进入屏幕的校准界面通常有特定触发电序进行四点校准。2. 清洁屏幕表面。电阻屏表层为软膜避免尖锐物体划伤。3. 检查屏幕接地是否良好。在超声电源与屏幕之间增加金属屏蔽罩或拉远距离。串口通信时好时坏1. 波特率误差。2. 电平不匹配。3. 线路干扰或接触不良。4. 双方代码的缓冲区溢出。1. 用示波器测量波特率是否准确。STM32的HAL库配置115200时时钟配置要精确。2. 确认是TTL电平3.3V/5V对接不是RS232电平。3. 检查接线尽量使用双绞线长度不宜过长建议1米。4. 检查MCU和屏幕的串口接收缓冲区大小确保能容纳最长的一帧数据。在代码中加入超时断帧机制。界面切换或动画卡顿1. 图片资源过大或过多。2. 串口数据更新过于频繁占用大量带宽。3. LUA脚本执行复杂运算耗时。1. 在VisualTFT中优化图片使用合适的压缩格式和颜色深度如RGB565。2. 降低非关键数据的刷新率如从1秒改为2秒。将多个数据打包成一帧发送。3. 优化LUA脚本避免在on_timer等高频回调中做复杂循环或字符串操作。将耗时操作分散到多个周期执行。屏幕偶尔死机或无响应1. 电源毛刺导致程序跑飞。2. 看门狗未启用或未及时喂狗。3. LUA脚本陷入死循环或内存泄漏。1. 在屏幕电源入口增加大电容如100uF电解0.1uF陶瓷滤波。2. 确保屏幕硬件看门狗已使能并检查MCU发送的心跳包是否持续稳定。3. 简化LUA脚本逻辑使用collectgarbage()定期回收内存避免创建大量临时变量。最后一点个人体会串口屏方案的成功三分在硬件七分在软件设计和协议规划。前期花一天时间把通信协议、数据字典、界面状态流图画清楚远比后期调试各种灵异问题要节省得多。把屏幕当作一个独立的“智能终端”来设计交互而不是MCU的简单外设这样才能最大程度发挥其价值打造出真正好用、耐用的超声除垢设备人机界面。