兆易GD32H759I-EVAL LVGL 移植
[复制链接]
本帖最后由 御坂10032号 于 2024-6-12 14:04 编辑
大家好,今天的教程是想给大家分享一下如何移植LVGL到GD32H759I-EVAL的开发板上。 通过这篇教程你将会学到如何移植LVGL
1 - 下载
我们可以在GITHUB上下载LVGL的发行版,你可以选择自己的想要使用的版本。 关于LVGL的中文使用手册,可以参考百问网
2- 解压准备需要的文件
在解压LVGL后你可以得到如下图所需的文件
3- 开始移植
我们只需要保留三个文件夹即可。 Demos, examples 和 src。 demos包括了官方提供了的Demo示例, example内包含了官方LVGL的example组件的示例。Src则是包括了LVGL的源码文件。
对于LVGL的移植,其实我们只需要example下的porting文件夹。我这边直接拷贝没有删除其他不需要的。 下图为准备好的文件。
重命名lv_conf_template.h 为lv_conf.h
如下图所示:
新建文件夹,按照下列树目录将上述文件夹进行方式
复制当前的目录到你的项目中,并且在Keil中新增目录分组用来更好的显示和编辑文件。
新增文件编译的查找路径
此时准备工作已经完成了,但是为了使用LVGL你还需要屏幕的驱动方法。也就是屏幕的打点函数,这个函数的作用就是在屏幕的X,y 画上一个点。我们把这个函数集成到LVGL内LVGL便可以帮我们画出漂亮的界面了。
关于屏幕的函数也不需要你自己实现。如果你使用的是GD32H759I-EVAL开发板的话,官方已经为你准备好了。驱动函数在固件库下的Utilities文件夹内
如下图所示:
此时你需要的是把这两个文件拷贝到你的项目里,并且包含到编译路径中,注意这个驱动函数还包括了LCD_font 和 sdram的,可以一起包含进来。
此时你的准备工作已经做好了。
接下来我们打开下图所示,在移植的文件的源文件中引入 lcd的驱动文件
在LVGL的初始化方法里调用初始化LCD,并且LVGL的缓冲区配置,三个任选一个即可
在下方的160行左右,把屏幕刷新函数中调用LCD的打点函数
最后也别忘了修改你屏幕的大小
此时配置部分已经完成了。
接下来我们来运行一下官方提供的demo,我们可以新建一个文件夹,把之前创建文件夹内的demo文件包含进来,如下图所示
配置它的编译路径
在主程序中引入LVGL初始化文件和demo文件的库
不要觉得这样就完了,你还需要给LVGL提供心跳来用于动画的显示,所以在主程序中还需要配置一个定时器,定时给LVGL提供心跳
主程序函数,在主程序中初始化定时器,初始化LVGL并且每间隔5ms调用一次lv_timer_handler函数。
在LVGL.conf 文件中打开你引入并且要demo的 project示例
编译并且烧录到开发板中。 如果你觉得下载器速度太慢,可以尝试做以下调整
效果如下:
代码:
|