一 LVGL介绍
1.LVGL是一种轻量级的用于嵌入式开发的GUI用户界面(QT是重型)
它只提供图形和控件,没有网络接口(QT有很多功能接口)
2.我一般会下载8.3/8.2版本的LVGL源码,因为它比较稳定,用户群体比较大,资料比较多
注意:并不是越新越好,有时候新版本占的资源比较大,而有些设备本身资源有限
?我们学LVGL学的是什么?
LVGL是一个开源的图形库,这个库里面有很多功能函数
所以我们学的就是怎么调用和使用这些函数(控件函数:图形大小,图形位置)
二 LVGL移植到STM32与移植到Linux系统设备的不同
- STM32中:有硬件,有用户自己写的硬件驱动,只需要移植LVGL核心源码
- Linux系统中:硬件被系统抽象为了文件接口(如FrameBuffer,input设备),LVGL需要通过“平台框架”和“驱动源码”对接这些接口
- 所以移植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源码

1万+

被折叠的 条评论
为什么被折叠?



