TFT-LCD LVGL官方例程的应用

TFT-LCD LVGL官方例程的应用

移植完lvgl的源码和驱动后,就可以试着调用lvgl的官方例程来运行了;例程的目录如下

TFT-LCD LVGL官方例程的应用_第1张图片

官方demo是一些比较完整的界面,文件夹里面有.gif的动态图展示,而类型和小部件适合根据需要做一个自己喜欢的界面,打开任意一个小部件的文件夹,里面会有源文件和图片展示

TFT-LCD LVGL官方例程的应用_第2张图片

keil工程添加例程

工程新建一个文件组,添加下面三个源文件,路径位置:TFT-LCD-LVGL\GUI\lvgl_examples\src\lv_ex_get_started

TFT-LCD LVGL官方例程的应用_第3张图片

点击打开lv_ex_get_started_1.c源文件,将创建按钮的函数复制到自己的初始化函数中

lv_ex_get_started_1.c:

TFT-LCD LVGL官方例程的应用_第4张图片

MyInit.c:

TFT-LCD LVGL官方例程的应用_第5张图片

直接调用的话是会出现错误的,因为还没有引入头文件,接下来要添加头文件路径

TFT-LCD LVGL官方例程的应用_第6张图片

然后在MyApplication.h头文件中包含所需头文件,因为设置里添加的路径是到src的,src里仍然有许多文件夹,所以要先包含文件夹,再包含头文件

TFT-LCD LVGL官方例程的应用_第7张图片

引入头文件后初始化的lv_ex_get_started_1()就没显示报错了,编译一下,发现没有错误没有警告

初始化完后需要启用GUI任务,在系统运行函数Run()中添加lv_task_handler()来启动GUI,Run函数会被main函数while循环调用,lv_task_handler()函数可以放在主循环或者定时器中,通过不停调用来启动GUI刷新

TFT-LCD LVGL官方例程的应用_第8张图片

编译没错后下载到开发板上,可以看到TFT屏幕左上角显示了一个按钮,并且触摸按钮后,数字会自动加1,说明lvgl移植成功

TFT-LCD LVGL官方例程的应用_第9张图片

再在初始化函数中调用lv_ex_get_started_2()和lv_ex_get_started_3(),再编译烧录

TFT-LCD LVGL官方例程的应用_第10张图片

这次显示了两个按钮,第一个按钮是灰色的,第二个按钮是红色的,按钮可以触摸,还有一个进度条,拉动进度条下面显示的数字会跟着改变,可以看出lvgl的界面功能还是挺不错的

TFT-LCD LVGL官方例程的应用_第11张图片

添加一个稍微大点的demo

同样在工程文件夹lvgl_examples中进行添加,源文件路径:\TFT-LCD-LVGL\GUI\lvgl_examples\src\lv_demo_widgets

TFT-LCD LVGL官方例程的应用_第12张图片

打开源文件,跳转到其对应的头文件中

TFT-LCD LVGL官方例程的应用_第13张图片

可看到只有一个函数声明,所以只需调用该函数即可,将该函数复制到自己工程的初始化函数MyInit中,启用GUI界面

TFT-LCD LVGL官方例程的应用_第14张图片

直接调用函数时会报错,需要将头文件路径包含进来,在MyApplication.h头文件中添加该demo的头文件路径

TFT-LCD LVGL官方例程的应用_第15张图片

还要注意lv_demo_widgets.c文件中的条件编译,如果这个条件为0,则lv_demo_widgets函数将不被编译

TFT-LCD LVGL官方例程的应用_第16张图片

点击跳转到该条件处,发现在lv_ex_conf.h头文件中进行了宏定义,默认是0的,所以lv_demo_widgets函数不起作用,需要将0改为1,函数才被编译

这是一个例程的配置头文件,定义的都是例程的条件编译参数,需要用到哪个例程,就将对应的宏改为1就行;

LV_DEMO_WIDGETS_SLIDESHOW宏定义是界面幻灯片效果,如果该宏定义为1,则界面呈幻灯片显示

TFT-LCD LVGL官方例程的应用_第17张图片

编译发现没错后,烧录到开发板上查看显示效果

这个demo就比较完善,功能也多,顶部三个选项可以触摸切换,第一个选项是显示按钮、复选框和进度条等,第二个选项是显示条形图和柱状图等,第三个选项是显示日历等,并且都能往下滑,能显示更丰富的内容。

TFT-LCD LVGL官方例程的应用_第18张图片

你可能感兴趣的:(LVGL,c语言,嵌入式硬件,stm32,TFT-LCD,LVGL)