前言
由于近期要做一个装置 ,想着把装置做的好看一点,就打算使用 GUI 来做一个信息的相关显示,之前听说过一款比较轻量级的图形库,也就是 lvgl,手头又正好有一块搭配屏幕的野火指南者开发板,单片机型号是 STM32F103VET6,Flash 为 512KB,RAM 为 64KB,屏幕为 3.2 寸电阻触摸屏,我们在来看一下运行 lvgl 这个 GUI 需要的资源,所需资源如下图所示:
几个比较关键的就是控制器的主频需要大于 16 MHz,对于 STM32F103来说,主频可以达到 72MHz,满足要求,所需要的 Flash 要大于 64KB,对于指南者这款开发板来将,他的主控是 STM32F103VET6,Flash 具有 512KB,远远满足要求。对于 RAM 来讲,lvgl 所需要的 RAM 是 8KB,推荐使用 24 KB,对于具有 64KB的 STM32F103VET6 来讲,是完全满足要求的。
综上,可以知道,使用野火指南者开发板来跑 lvgl 是完全没有问题的。
移植准备
为了更加快捷的完成移植,在这里就直接使用野火官方写好的液晶屏幕的驱动来进行 lvgl 的移植,首先找到野火配套例程中的第 30 号例程,也就是电阻触摸屏--触摸画板这个例程,将这个例程拷贝出来,在这个基础上进行移植。
拷贝出来之后,进入到工程目录里,工程目录结构如下图所示:
紧接着,我们进到 lvgl 的 github 仓库,选择已经发布的 v7.6.1 版本进行移植,
![github仓库](https://gitee.com/wenzi_D/images4mk/raw/master/lvgl github仓库.png)
我们将代码下载下来,放到 Libraries 里面,如下图所示:
至此,我们就完成了移植前的准备工作,接下来进行移植代码。
导入 lvgl 库到 keil 工程中
首先在 keil 工程中新建 lvgl Groups 组,然后将 lvgl/src/lv_core
lvgl/src/lv_draw
lvgl/src/lv_font
lvgl/src/lv_hal
lvgl/src/lv_misc
lvgl/src/lv_themes
lvgl/src/lv_widgets
路径下的文件加入到新建的组中, 如下图所示:
紧接着,我们来看一下 lvgl 官网中的文档对于 lvgl 运行的要求:</