LVGL开发小分享

关于LVGL

这其实是我最近一个月才关注到的一款gui库,由于公司项目需要,已在GD32F450和新塘N32905上面移植成功。

关于移植

移植的过程可以参考正点原子提供的教程,这里就不班门弄斧。
一堆文件的添加之后,主要是根据自己的工程修改填色函数。

关于PC仿真

因为LVGL不同于qt,一个标签或者按键都需要用代码编译处理,没那么直观。LVGL提供一些PC端的软件来模拟界面,其中包括VS,code blocks等。我这边同样参考正点原子提供的方案,通过code blocks搭建工程完成仿真,根据步骤完成也相对简单。

关于GUI Guider

以上的code blocks只是方便调试,不需要下载验证,但是开发也并不直观。
这里主要想提一下NXP开发的GUI Guider软件,这是NXP公司开发的为其公司的芯片开发LVGL的上位机软件,支持类似Qt的拖拽控件来编辑界面。
官方提供的第一版软件支持win10和Ubuntu,实测我在win7上面也能安装运行成功。
这里需要注意的是,GUI Guider需要Java环境,关于Java的安装可自行百度,系统的环境变量添加也需要注意。

由于该上位机是针对NXP的芯片,但是我们可以利用该软件编辑界面代码即可,然后将代码移植到自己的工程,这样大大提高了开发界面的速度。在根据实际进行一定的修改。

注意:目前支持LVGL 7版本。

关于帧率优化

有看到相关的文章,分析关于 单全屏buff,两半屏buff,两全屏buff三种情况的帧率对比。如果在LVGL 7以上的版本,可以利用官方提供的lv_demo_benchmark进行测试。
实测 单全屏buff > 两半屏buff > 两全屏buff(测试屏幕分辨率为480*272,芯片为GD32F450,RGB565,采用IPA加速和中断刷新)。
可能容易以为 “两全屏buff” 的效果应该更佳,但是我通过debug发现:
配置LVGL刷新为 单全屏buff 和 两半屏buff 时,每次刷新的坐标和图像宽度并非全屏大小,可能这样每次刷新的数据量更小,所以效率更高。而配置成 两全屏buff 时,每次都是刷新整个页面,数据量更大。
因此通过 lv_demo_benchmark 测试得到的 两全屏buff 效果并不理想。

(不同平台结果可能不同)

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
您好!有关Linux下的LVGL开发LVGL是一款用于嵌入式GUI开发的开源库,它提供了丰富的图形界面组件和功能扩展,适用于各种嵌入式平台。 要在Linux上进行LVGL开发,您可以按照以下步骤进行: 1. 安装依赖:在Linux系统上,您需要安装一些依赖项,例如C编译器、库和工具链。您可以使用包管理器来安装这些依赖项。例如,对于Ubuntu系统,可以使用以下命令安装: ``` sudo apt-get install build-essential libsdl2-dev ``` 2. 下载LVGL库:您可以从LVGL的官方网站(https://lvgl.io/)上下载最新的LVGL库。解压缩下载的文件到您的开发目录。 3. 配置LVGL:进入LVGL库的目录,您可以找到一个名为`lv_conf_template.h`的文件。将其复制为`lv_conf.h`,并根据您的需求进行配置。在这个文件中,您可以定义LVGL的一些参数设置,例如显示驱动器、内存分配器等。 4. 创建应用程序:使用C语言编写一个简单的LVGL应用程序。您可以创建一个main.c文件,并在其中初始化LVGL,并编写界面布局、事件处理等代码。 5. 编译和运行:使用命令行工具,进入您的应用程序目录,并使用以下命令编译和链接您的应用程序: ``` gcc -o app main.c `pkg-config --cflags --libs sdl2` ``` 这将生成一个名为`app`的可执行文件。运行它以启动您的LVGL应用程序。 这只是一个简单的示例,您可以根据LVGL的文档和示例进行更复杂的开发。希望这些步骤能够帮助到您!如果您有任何进一步的问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

键盘打工人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值