实践分享 | 基于framebuffer的lvgl的移植使用

点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看嵌入式笔记!

前言

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的可执行文件。

传到板子里运行:

本文相关资料下载

本篇文章需要用到的资料及能跑的demo我已经打包好了:

在本公众号后台回复关键词:基于framebuffer的lvgl的移植使用,即可获取下载链接。

温馨提示

由于微信公众号近期改变了推送规则,如果您想经常看到我们的文章,可以在每次阅读后,在页面下方点一个「赞」或「在看」,这样每次推送的文章才会第一时间出现在您的订阅列表里。

猜你喜欢:

实用 | 分享几个非常实用的开源项目

【嵌入式Linux笔记】设备树实例分析

【嵌入式Linux笔记】设备树基础知识

【嵌入式Linux笔记】总线设备驱动模型

2020年精选原创笔记汇总

分享一款嵌入式人必备绘图工具,让你的工作汇报更精彩!(附安装、踩坑、填坑教程)

在公众号聊天界面回复1024,可获取嵌入式资源;回复 m ,可查看文章汇总。

文章都看完了不点个

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

嵌入式大杂烩

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

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

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

打赏作者

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

抵扣说明:

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

余额充值