0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

LVGL前台程序开发相关操作介绍

瑞萨嵌入式小百科 ? 来源:瑞萨MCU小百科 ? 2025-01-23 13:47 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

13.5.5 “+”按钮的操作

1.“+”按钮的回调函数

点击如下按钮时,会增加“点”:

a19b8740-d93f-11ef-9310-92fbcf53809c.png

在界面里会得到如下图所示的新控件:

a1bcdd6e-d93f-11ef-9310-92fbcf53809c.png

点击“+”按钮时它的回调函数“add_new_item_event_handler”被调用,这个回调函数在“lv_modbus_tool”函数中被设置,代码如下:

a1df7df6-d93f-11ef-9310-92fbcf53809c.png

“add_new_item_event_handler”函数代码如下:

a1f3e124-d93f-11ef-9310-92fbcf53809c.png

它调用“add_new_item”函数为“点”创建控件,此函数在前面分析过,不再赘述。

2.通过RPC通知后台程序添加点

上图中第2个参数为“-1”,表示要创建一个新点:这会导致“rpc_add_point”函数被调用,代码如下:

a202c360-d93f-11ef-9310-92fbcf53809c.png

13.5.6 “Setting”按钮的操作

1.创建配置界面

点击“Setting”按钮,会弹出一个配件界面:

a232c3b2-d93f-11ef-9310-92fbcf53809c.png

可以在配置界面里设置“点”的信息:使用哪个串口、串口参数设置、设备地址、寄存器地址、寄存器类别。

这个配置界面在何时被创建?在“add_new_item”函数中创建:

a240a900-d93f-11ef-9310-92fbcf53809c.png

最底层:

a2604918-d93f-11ef-9310-92fbcf53809c.png

“[0]”表示第1层的第0个控件:

a27f94d0-d93f-11ef-9310-92fbcf53809c.png

“[0-0]”表示第2层的第0个控件:

a2a2d148-d93f-11ef-9310-92fbcf53809c.png

其他代码都是类似的,不再赘述。

2.显示配置界面

点击“Setting”按钮时它的回调函数“show_conf_event_handler”被调用,这个回调函数在“add_new_item”函数中被设置,代码如下:

a2cd47de-d93f-11ef-9310-92fbcf53809c.png

“show_conf_event_handler”函数代码如下:

a2ec2a00-d93f-11ef-9310-92fbcf53809c.png

配置界面如下:

a2fa98ba-d93f-11ef-9310-92fbcf53809c.png

3.配件界面的“OK”按钮的回调函数

当设置好各类参数后,点击“OK”按钮将会调用它的回调函数“com_conf_opt_btn_event_handler”,这个回调函数在“配置页面的创建函数com_or_ip_conf_page_init”中被设置,代码如下:

a30fb394-d93f-11ef-9310-92fbcf53809c.png

“com_conf_opt_btn_event_handler”回调函数代码如下,它仅仅是发出一个事件:

a32bbb66-d93f-11ef-9310-92fbcf53809c.png

上图第1124、1126、1128行,一层一层地找到“Send”按钮,如下图:

先在cont2_x中找到它的第2个child,就是“add_new_item”中给某个点创建的、占据66%高度的控件cont2_x_2,对应注释“[2]”。

再在cont2_x_2中找打它的第6个child,即控件 cont2_x_2_x,对应“add_new_item”函数中的注释“[2-6]”。

最后在cont2_x_2_x中找打它的第1个child,对应“add_new_item”函数中的注释“[2-6-1]”,它就是“Send”按键

就可以给“Send”按键发送“MY_LV_EVENT_UPDATE_RPC”事件了。

a34a39a6-d93f-11ef-9310-92fbcf53809c.png

4.“Send”按钮回调函数

对于“点”,有如下界面:

a370bdec-d93f-11ef-9310-92fbcf53809c.png

上图界面是使用“add_new_item”函数创建的,里面的“Send”按钮回调函数,如下图所示:

a383fb5a-d93f-11ef-9310-92fbcf53809c.png

在“Setting”界面点击“OK”按钮时,会给“Send”按钮发送“MY_LV_EVENT_UPDATE_RPC”事件。导致“btn_send_event_handler”函数被调用,这个函数最终会使用RPC接口修改点的信息,调用关系如下图所示:

a3930d48-d93f-11ef-9310-92fbcf53809c.png

13.5.7 写“点”的操作

在如下界面写入数值后,点击“Send”,会调用RPC接口写传感器

a3bd2718-d93f-11ef-9310-92fbcf53809c.png

“Send”按钮的回调函数“btn_send_event_handler”被调用,它的代码如下:

a3c4e156-d93f-11ef-9310-92fbcf53809c.png

对于“0x”、“4x”的寄存器,先写入数据,再读出来。

13.5.8 读“点”的操作

在如下界面勾选“Period”前面的复选框,会周期性地读点:

a3fefd6e-d93f-11ef-9310-92fbcf53809c.png

创建这个复选框时的代码如下:

a417173c-d93f-11ef-9310-92fbcf53809c.png

当勾选“Period”前面的复选框时,“cb_send_period_event_handler”函数被调用:

a440931e-d93f-11ef-9310-92fbcf53809c.png

定时器的函数里,向“Send”按钮发送“MY_LV_EVENT_READ_PERIOD”事件,代码如下:

a44e25f6-d93f-11ef-9310-92fbcf53809c.png

“Send”函数的回调函数“btn_send_event_handler”被调用,它会使用RPC调用读取点的数值,代码如下:

a4696cd0-d93f-11ef-9310-92fbcf53809c.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 程序
    +关注

    关注

    117

    文章

    3829

    浏览量

    83425
  • 函数
    +关注

    关注

    3

    文章

    4388

    浏览量

    65300
  • 代码
    +关注

    关注

    30

    文章

    4907

    浏览量

    71236
  • LVGL
    +关注

    关注

    1

    文章

    108

    浏览量

    3796
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    HMI-Board开发板工程在添加新组件时LVGL组件会报错的解决办法

    在使用HMI-Board开发开发lvgl的GUI界面设计时,可以直接在官方提供的lvgl的demo中开发,这样就可以省去
    的头像 发表于 09-13 16:17 ?2123次阅读
    HMI-Board<b class='flag-5'>开发</b>板工程在添加新组件时<b class='flag-5'>LVGL</b>组件会报错的解决办法

    LVGL开发入门教程

    LVGL(Light and Versatile Graphics Library)是一个开源的嵌入式图形库,由Gábor Kiss-Vámosi于2016年创建,遵守MIT协议。目前由来自世界各地的志愿者共同维护和开发
    的头像 发表于 01-03 15:23 ?3493次阅读
    <b class='flag-5'>LVGL</b><b class='flag-5'>开发</b>入门教程

    开发第1个LVGL程序与实现按键操作

    开发第1个LVGL程序与实现按键操作
    的头像 发表于 01-07 13:49 ?3249次阅读
    <b class='flag-5'>开发</b>第1个<b class='flag-5'>LVGL</b><b class='flag-5'>程序</b>与实现按键<b class='flag-5'>操作</b>

    LVGL前台程序开发相关操作

    要使用libmodbus操作Modbus RTU传感器,需要做的事情有2个。
    的头像 发表于 01-17 12:43 ?1466次阅读
    <b class='flag-5'>LVGL</b><b class='flag-5'>前台</b><b class='flag-5'>程序</b><b class='flag-5'>开发</b><b class='flag-5'>相关</b><b class='flag-5'>操作</b>

    前台运行和后台运行二者有何区别

    开发环境:DeepIn15.11 开发语言:C语言 测试软件:Final Shell3.0.10 目录分清你的程序前台运行还是后台运行,二者有何区别
    发表于 11-04 08:18

    LVGL的字体相关资料分享

    前言之前展示过Luatos在win32上运行LVGL的效果,今天带来LVGL的字体篇介绍LVGL字体支持很全,支持 UTF-8 编码的 Unicode 字符,分内部字体和外部字体,字体
    发表于 12-03 07:01

    LVGL工具使用

    文章所有资料以及代码下载途径LVGL工具使用:主要介绍下模拟器的使用/电脑组态软件(我通常把电脑拖控件软件叫做组态软件)LVGL概念概述:主要对LVGL的对象/事件/风格/输入设备/显
    发表于 12-15 07:17

    Purple Pi R1 LVGL使?参考

    LVGL是?个轻量级的,开源的图形库。本?详细介绍了如何在Purple Pi开发板上运?lvgl应?,同时介绍了如何使?著名的
    发表于 09-06 15:25

    全面解读目前LVGL的应用小知识

    概述 本文介绍目前LVGL的应用小知识,希望对采用MCU设计UI界面的用户有所启发,开发出界面更友好的消费品或者工业产品,造福大众。 01. LVGL系统架构
    的头像 发表于 06-04 12:01 ?3.2w次阅读
    全面解读目前<b class='flag-5'>LVGL</b>的应用小知识

    LuatOS之LVGL字体篇

    前言之前展示过Luatos在win32上运行LVGL的效果,今天带来LVGL的字体篇介绍LVGL字体支持很全,支持 UTF-8 编码的 Unicode 字符,分内部字体和外部字体,字体
    发表于 11-23 17:51 ?13次下载
    LuatOS之<b class='flag-5'>LVGL</b>字体篇

    LVGL系列(二)之二 LVGL常见问题解答 整理自官方文档

    “本文大部分内容来自LVGL官方文档,手翻版,如有错误欢迎指正。”系列文章目录一、LVGL系列(一)一文了解LVGL的学习路线轻松了解LVGL的全部二、
    发表于 11-24 13:36 ?12次下载
    <b class='flag-5'>LVGL</b>系列(二)之二 <b class='flag-5'>LVGL</b>常见问题解答 整理自官方文档

    LVGL 优化帧率技巧

    目录标题前文LVGL帧率限制代码优化等级前文LVGL——PC模拟器仿真模拟+VS2017f429 discovery开发LVGL移植(带操作
    发表于 12-07 13:21 ?17次下载
    <b class='flag-5'>LVGL</b> 优化帧率技巧

    【飞凌OKA40i-C开发板试用体验】LVGL移植与测评

    图形界面开发工具。不过对于简单的用户界面程序,Qt有点杀鸡用牛刀的意思。今天介绍一下轻量级的图形界面库LVGLLVGL的项目作者是来自匈牙
    的头像 发表于 10-20 10:22 ?4788次阅读
    【飞凌OKA40i-C<b class='flag-5'>开发</b>板试用体验】<b class='flag-5'>LVGL</b>移植与测评

    如何在MDK中部署LVGL

    LVGL的刚刚完成了对LVGL8的维护更新,发布了v8.3.5版。相对master分支上正在开发LVGL9,该版本是一个吐血推荐的稳定版本。
    的头像 发表于 07-27 14:41 ?1888次阅读
    如何在MDK中部署<b class='flag-5'>LVGL</b>

    LVGL开发指南介绍

    电子发烧友网站提供《LVGL开发指南介绍.pdf》资料免费下载
    发表于 09-09 10:24 ?21次下载