LVGL移植Linux系统设备

一 LVGL介绍

1.LVGL是一种轻量级的用于嵌入式开发的GUI用户界面(QT是重型)

只提供图形和控件,没有网络接口(QT有很多功能接口)

2.我一般会下载8.3/8.2版本的LVGL源码,因为它比较稳定,用户群体比较大,资料比较多

注意:并不是越新越好,有时候新版本占的资源比较大,而有些设备本身资源有限

?我们学LVGL学的是什么?

LVGL是一个开源的图形库,这个库里面有很多功能函数

所以我们学的就是怎么调用和使用这些函数(控件函数:图形大小,图形位置)

二 LVGL移植到STM32与移植到Linux系统设备的不同

  1. STM32中:有硬件,有用户自己写的硬件驱动,只需要移植LVGL核心源码
  2. Linux系统中:硬件被系统抽象为了文件接口(如FrameBuffer,input设备),LVGL需要通过“平台框架”和“驱动源码”对接这些接口
  3. 所以移植LVGL到Linux系统的设备上时,需要下载:(1)LVGL源码提供UI界面,(2)下载frame-buffer平台框架源码将界面渲染到屏幕上,(3)和下载驱动源码实现用户触摸逻辑

三 下载LVGL源码

1.算法源码(主源码):提供算法

2.框架平台源码(frame_buffer)(arm Linux开发板fb0的源码主框架):因为要使用标准的Linux帧缓冲区

3.驱动源码:用于驱动显示屏和触摸屏

四 移植适配步骤

1..将 算法源码 和 驱动源码 放在 fram_buffer平台框架源码中

2.在Vscode中打开fram_buffer文件夹代码,打开Makefile文件,更改gcc命令,将 ?= gcc 改为 = arm-linux-gcc

2.(1)用make命令编译,此时会报错

        (2)在Vscode中 crtl+f 查找搜索出错的语句,删掉,保存并再次make编译

编译:这里用的是静态编译,所以编译时间比较长,根据电脑网速,一般是十几分钟

3.用file命令查看程序的文件属性是不是ARM32位的ARM平台

这个bin就是编译成功之后的程序名称:demo,所以我们用file命令查看这个demo文件就可以知道是不是程序的文件属性是不是arm32位的arm平台

4.在CRT软件重rx传输demo,给权限然后运行

但是此时触摸屏幕没有反应,进行下一步:

5.开启LVGL触摸屏功能,设置功能宏的两个头文件

(1)打开 lv_drv_conf.h文件,修改以下内容

(2)修改完以后,要先 make clean 再make!!

原:

改后:

五 LVGL工程文件夹

在VScode中打开搭建好的LVGL源码

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值