系统参数设置(触控屏LUA脚本教程3)

系统参数设置(触控屏LUA脚本教程3)缩略图
本文目录
  1. 1. 3.1 修改波特率
  2. 2. 3.2 设置背光
  3. 3. 3.3 设置蜂鸣器响
  4. 4. 3.4 设置RTC

本文将介绍通过LUA脚本设置系统参数。如常见的波特率、蜂鸣器、RTC的、背光亮度等。本章节涉及相关的函数有

1.在用户触摸修改控件回调函数:on_control_notify(screen,control,value):函数有三个参数:

  • screen:表示画面ID
  • control:表示控件的编号
  • value:表示控件的值。

2.设置串口的通讯的波特率:uart_set_baudrate(baudrate)

  • baudrate:表示设置的波特率值。232/TTL支持1200~961200bps,典型值为115200bps。485支持1200~115200bps,典型值为9600bps

3.设置背光亮度:set_backlight(level)

  • level:表示设置的背光值,取值范围为0~100。数值越高,背光亮度越亮

4.设置蜂鸣器鸣叫时长:beep(time)

  • time:表示蜂鸣器响的时间长度,单位ms,并非蜂鸣器的使能/失能控制

5.设置屏幕RTC时间:set_date_time(year,month,day,hour,minute,second)

  • year:表示年
  • month:表示月
  • day:表示日
  • hour:表示小时
  • minute:表示分
  • second:表示秒

注:更多LUA资料可参考LUA 脚本API函数接口 章节 和网站:www.runoob.com/lua

适用范围:M系列、W系列、X系列、F系列(固件版本 >= V4.2.401.0)

例程下载链接:《系统参数设置》(点击跳转)

3.1 修改波特率

画面配置

添加两个按钮控件(ID1、ID2),分别设置波特率为19200、115200;添加一个文本控件(ID14),用于显示波特率。如下所示

  • 两个按钮控件:对内指令配置为互斥效果,操作风格均为置位,其中ID1按钮初始状态为按下,ID2按钮初始状态为弹起
  • 文本控件:输入方式为系统变量、系统变量为波特率

LUA脚本

当用户点击【19200】或【115200】按钮 控件时候,触发on_control_notify(screen, control, value)回调函数,根据对应按钮按下,调用uart_set_baudrate(baudrate)设置对应的波特率,代码段如下所示

--[[***************************************************************************
** Function name: on_control_notify
** Descriptions:  用户通过触摸修改控件后,执行此回调函数。
                  点击按钮控件,修改文本控件、修改滑动条都会触发此事件。
                  注意:回调函数的参数和函数名固定不能修改
** Input value :  screen 画面ID
                  control 控件ID
                  value  控件值(包括文本控件输入的值)
***************************************************************************--]]
function  on_control_notify(screen,control,value)
    ......
    if screen==0 and control==1 and value==1        --按下第0页、编号1按钮
    then
        uart_set_baudrate(19200)                    --设置波特率为19200

    elseif screen==0 and control==2 and value==1    --按下第0页、编号2按钮
    then
        uart_set_baudrate(115200)                   --设置波特率为115200
    end
    ......
end

PS. uart_get_baudrate() 函数为获取当前波特率,如: local baudrate = uart_get_baudrate() ↩

运行效果

根据上述的代码段,运行效果如下所示

3.2 设置背光

背光的调节,可结合进度条和滑块进行滑动调节

画面配置

画面中添加一个滑块控件(ID4)和一个进度条控件(ID3)作为背光的控制,相关控件属性配置如下所示

  • 滑块控件:设置数值起始范围为20~100(若背光调节为0或较低,会看不清楚画面内容)。其中,LUA脚本设置的背光等级支持0-100
  • 进度条控件:设置【滑动通知】关联滑动条,添加相应的背景图片

LUA脚本

当用户点击/滑动滑块时,背光值和进度条也跟随变化。滑动过程触发LUA脚本 on_contrl_notify(screen,control,value),在调用set_backligt(level)设置背光值,代码段如下所示

--[[***************************************************************************
** Function name: on_control_notify
** Descriptions:  用户通过触摸修改控件后,执行此回调函数。
                  点击按钮控件,修改文本控件、修改滑动条都会触发此事件。
                  注意:回调函数的参数和函数名固定不能修改
** Input value :  screen 画面ID
                  control 控件ID
                  value  控件值(包括文本控件输入的值)
***************************************************************************--]]
function  on_control_notify(screen,control,value)
     ......
     if screen==0 and control == 4        --滑动第0页、编号4滑动条
     then
        set_backlight(value)             --设置背光为value
     end
     ......
end

PS . get_backlight 函数为获取当前背光值,如: local cur_backlight = get_backlight() ↩

运行预览

此处虚拟屏运行效果仅做为控件变化演示,实际调节背光的效果,需要编译下载到实体屏中体验

3.3 设置蜂鸣器响

画面配置

放置一个按钮控件(ID为5),按钮属性中的事件通知选择“是”。如下所示

LUA脚本

按下按钮时,触发事件通知on_contrl_notify(screen,control,value)函数,对应控件触发成立后,调用beep(500)函数,表示蜂鸣器鸣叫500ms,代码段如下所示

--[[***************************************************************************
** Function name: on_control_notify
** Descriptions:  用户通过触摸修改控件后,执行此回调函数。
                  点击按钮控件,修改文本控件、修改滑动条都会触发此事件。
                  注意:回调函数的参数和函数名固定不能修改
** Input value :  screen 画面ID
                  control 控件ID
                  value  控件值(包括文本控件输入的值)
***************************************************************************--]]
function  on_control_notify(screen,control,value)
     ......
     if screen==0 and control == 5 and value == 1    --滑动第0页、编号4滑动条
     then
        beep(500)                                    --设置蜂鸣器鸣叫500ms
     end
     ......
end

运行预览

下载到串口屏中,点击”响”按钮,听到”嘀”一声

3.4 设置RTC

画面中,放置一个RTC控件,两个按钮分别设置不同的时间。控件相关属性配置如下所示

LUA脚本

触发事件通知on_contrl_notify(screen,control,value)函数,对应控件触发成立后,调用 set_date_time()函数设置RTC时间。代码如下所示:

--[[***************************************************************************

** Function name: on_control_notify
** Descriptions:  用户通过触摸修改控件后,执行此回调函数。
                  点击按钮控件,修改文本控件、修改滑动条都会触发此事件。
                  注意:回调函数的参数和函数名固定不能修改
** Input value :  screen 画面ID
                  control 控件ID
                  value  控件值(包括文本控件输入的值)
***************************************************************************--]]
function  on_control_notify(screen,control,value)
     ......
     if screen==0 and control == 6 and value == 1    --滑动第0页、编号4滑动条
     then
         set_date_time(2019,1,1,1,1,1)               --设置当前时间为2019/01/01 01:01:01
     end
     ......
end

PS . get_date_time函数为获取当前rtc值,如: local cur_backlight = get_backlight() ↩

运行预览

下载到串口屏中,点击”时间一”或”时间二”按钮,看到左侧RTC时间变化。注意,虚拟屏不支持修改RTC控件,因为是电脑PC端的时间

技术术语(共 2 个)—— 点击展开
波特率串行通信每秒传输符号数,Modbus RTU常用9600/19200
串口计算机与外部设备进行串行通信的物理接口
来源/工具信息 —— 点击展开
来源 Modbus.cn — China's leading Modbus communication protocol technical community 分类 LUA 脚本文档 / 触控屏开发文档 字数 3942 字 · 阅读约 10 分钟 更新 2026-07-01 永久链接 https://www.modbus.cn/en/7401.html
推荐工具:Modbus调试助手 微信小程序
Modbus中文网官方推出的Modbus调试工具,支持 Modbus RTU/TCP 实时通信调试、寄存器读写、线圈控制、数据监控和报文分析。 无需安装,微信搜索「Modbus调试助手」即可使用。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
📝 作者声明
本文由 Modbus中文网技术团队 原创撰写,内容基于实际项目案例与技术文档,力求为读者提供准确、实用的参考信息。
把这篇资料用于真实项目?

进入工具中心进行报文解析、CRC 校验和设备调试,或提交需求获取选型与接入建议。

工程师会员

把这篇文章变成可执行的调试资料

开通后可使用高级报文解析、资料包下载、代码示例、工程案例和优先技术支持,适合真实项目交付。

高级工具不限次
资料包与代码包
完整工程案例库
优先技术支持入口

发表回复

Your email address will not be published. 必填项已用 * 标注