LittlevGL + Framebuffer的适配例子分享!

发布时间:2024-12-27  

前言

LittlevGL是一个免费的开源图形库,提供了创建嵌入式GUI所需的一切,具有易于使用的图形元素、漂亮的视觉效果和低内存占用。

关于LVGL的文章之前有写过几篇:

LVGL | lvgl最新版本在STM32上的移植使用

LVGL | 基于vs2019的lvgl模拟器使用

LVGL | GUI-Guider的使用分享

本篇笔记分享基于framebuffer的lvgl的移植使用。

准备工作

一种方式是像LVGL | lvgl最新版本在STM32上的移植使用这篇文章的方式一样,从头一步一步来搭建基于framebuffer的工程,自己编写Makefile文件。需要下载:

  • lvgl
  • lv_drivers
  • lv_examples

这些可以在lvgl官方GitHub找到。

然后建立一个工程,把需要用到的文件复制到工程里,编写Makefile文件即可。具体教程可参考这一篇文章:

https://www.icode9.com/content-4-2420.html

除此之外,lvgl官方仓库也有提供基于Linux frame buffer的移植工程:lv_port_linux_frame_buffer,我们直接下载下来修改一些代码适配我们的板子就可以。

lvgl快速实践

文章篇幅有限,我们就不一步一步演示移植步骤了。我们直接下载lv_port_linux_frame_buffer拿过来进行修改即可,就可以快速跑起来。

我们可以使用git clone --recurse-submodules命令下载,也可以直接下载。关于git clone --recurse-submodules命令的介绍可查阅:LVGL | 基于vs2019的lvgl模拟器使用这篇文章。我们选择直接下载,下载得到的lv_port_linux_frame_buffer内容为:


此时,lvgl、lv_examples、lv_drivers这三个文件夹内的内容是空的,我们需要下载相关资源放进去。比如:


接下来可以修改工程了,需要修改的地方也很简单,但前提是我们的设备已经有显示驱动与触摸屏驱动。

1、修改编译器

首先需要修改Makefile,因为我们需要在板子上跑,所以需要使用交叉编译器:

2、修改分辨率

修改lv_conf.h文件里的LV_HOR_RES_MAX、LV_VER_RES_MAX宏为实际屏幕大小,如:

3、使能fb设备

修改lv_drv_conf.h文件里的USE_FBDEV宏来使能Linux frame buffer device (/dev/fbx),如:

关于frame buffer的介绍可看如下推文:

Linux系统开发之Framebuffer应用编程

4、使能输入设备

修改lv_drv_conf.h文件里的USE_EVDEV宏来使能输入事件设备,如:


其中,你的板子的输入事件可能不是event1,根据实际进行修改。可以使用cat命令来测试一下你板子的触摸屏输入对应的是哪一个event,如:


此时,触摸一下屏幕,则终端会有信息(乱码信息)输出,则说明当前板子的触摸输入对应的就是这个event。

5、添加输入初始化

main.c初始化并注册一个输入设备,如:


6、添加lvgl心跳

main.c添加lv_tick_inc函数的调用,如:


然后就可以跑跑一些实例demo了,有些demo需要使能lv_conf.h文件里的一些配置,否则编译会报错,根据编译报错信息修改相关配置项即可。

编译成功之后,会在lv_port_linux_frame_buffer工程主目录生成一个名为demo的可执行文件。

传到板子里运行:


文章来源于:21IC    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>