立即注册 找回密码

微雪课堂

搜索
微雪课堂 图形用户界面(GUI) 查看内容

STM32之littlevGL系列教程:移植littlevGL到STM32(一)

2020-3-28 20:24| 发布者: imliubo| 查看: 13765| 评论: 0|原作者: IAMLIUBO

摘要: 本篇内容有点多,但是非常重要,请大家仔细阅读!Hi,大家好,欢迎来到STM32之littlevGL课堂,相信经过上一篇文章的介绍你对littlevGL,肯定有了一定的了解,而且现在正在跃跃欲试的准备去移植这个项目到你的作品中 ...
本篇内容有点多,但是非常重要,请大家仔细阅读!
Hi,大家好,欢迎来到STM32之littlevGL课堂,相信经过上一篇文章的介绍你对littlevGL,肯定有了一定的了解,而且现在正在跃跃欲试的准备去移植这个项目到你的作品中,当然大牛级别的肯定一看就会了,但是还有很大一部分人不知道从哪里入手。所以本片文章就给大家介绍如何一步步移植lvgl到STM32项目中,废话不多说,我们开始吧!

准备工作
硬件:
本系列教程所使用的硬件为:
为了大家更好的学习,建议大家使用相同的硬件。

软件:
1.Keil-MDK (请大家自行下载并安装)
2.lvgl源码(6.1.2版本)
3.lvgl example源码(主线版本)

开始移植
其实移植还是非常简单的,就是适配几个函数,第一个是LCD屏填充函数,lvgl通过这个接口来将界面显示到我们的显示屏上,第二个是获取触摸坐标,lvgl通过这个接口来获取我们操作的哪一个按钮或者其它控件,这就是本节课程移植的主要思想,当然还有一些细节部分,那些我们在后面的操作中再细说。
那么问题来了,我们要适配这两个函数,那我们还要自己写吗?这里大家就不用担心了,你可以学着自己配置你的工程,也可以在本篇文章的最后下载移植好的源码,这样大家就可以直接编译了,无需再去配置自己的工程,大家如果想要自己从头开始配置自己的工程的,可以参考下面的链接,也是在微雪课堂中有讲:
大家可以根据这两篇文章自己去学习一下,配置好并显示和触摸都没有问题后就可以继续往下进行了,当然没有自己配置也想自己从移植开始体验的可以下载LCD屏的例程开始下一步正式移植:

首先打开我们的工程,按照下面步骤,增加几个组文件夹,如下图:

添加完第一个后,大家重复2和3步骤,重复添加即可,我们一共需要添加六个文件夹,如下图,建议大家参考:

前面三个文件夹分别对应的是SDRAM、LCD显示和LCD触摸的驱动,对应显示屏例程中的这几个文件,这里分类一下:

这样我们就将这几个文件从Application/User 文件夹中删除了,然后我们添加到下面的文件夹中:

按照上面的步骤依次将stm32746g_lcd.c添加到Drivers/Displays文件中,将CT_I2C.cGT911.c添加到Drivers/Touch文件夹中,最后我们的工程树如下:

然后我们再增加lvgl、lvgl/example和lvgl/port三个文件夹,这三个文件夹内的内容分别是lvgl的源码,lvgl一些例程的源码以及我们需要对接的接口程序源码,我们一会再往里面添加文件。
然后我们下载lvgl的源码,这里为了跟大家统一一下,我们使用V6.1.2版本的源码,这是当前release的最新的版本,大家可以戳链接下载:
然后是example的源码,这个没有具体的版本,但是建议大家下载master主线的代码,因为老版本的与lvgl V6.1.2不是很兼容,戳链接下载:
OK,下载完成后,我们将下载的lvgl源码解压一下,然后将解压出来的文件夹复制到工程目录中去,然后重命令为lvglexample的源码也是一样,先解压,然后复制到工程目录中去,重命名为lv_examples,最后工程文件目录如下图:

可以看到还多了两个配置文件,我们还需要复制这两个文件出来,lv_conf.h是在lvgl文件夹下的lv_conf_template.h,我们将其复制出来,然后重命名为lv_conf.h,然后lv_ex_conf.h是在lv_examples文件夹下的lv_ex_conf_templ.h文件,同样的我们复制出来,然后重命名,最后我们需要将两个头文件的内容修改一下,我们需要分别打开两个文件,然后将文件的开头部分的#if 0 修改为 #if 1,切记,这一点非常重要,然后我们还需要修改lv_conf.h的下面的内容:
#define LV_HOR_RES_MAX          (1024)
#define LV_VER_RES_MAX          (600)
数字表示的是LCD屏幕的分辨率,当然你如果使用的其它屏幕,按照你的硬件修改即可。

接下来的内容,我们回到Keil继续,我们先将c文件先添加到工程中,跟着下图步骤依次做即可:

同样的,我们再往添加lv/example目录下添加文件,需要添加的文件是:

然后我们再来添加lv/port目录下的文件:

最后我们的工程树应该跟下图一样:

由于文章内容有点长,请继续看下一篇文章。


132

顶一下

刚表态过的朋友 (132 人)

相关阅读

最新评论

微雪官网|产品资料|手机版|小黑屋|微雪课堂. ( 粤ICP备05067009号 )

GMT+8, 2024-12-27 02:25 , Processed in 0.016584 second(s), 17 queries .