网站后台怎么上传文章,什么是企业网站pv,网络推广优化方法,外贸单证版本#xff1a;LVGL Kernel V8.3.0#xff0c;运行压力测试Demo Stress首先放一张最终Stress Demo 运行图#xff1a;
一、准备
1. GD32 Keil工程
准备任意一个屏幕可以正常显示的GD32工程#xff1a;
2. LVGL源码
最新版现在已经是V9.2了#xff0c;这里我选择了…版本LVGL Kernel V8.3.0运行压力测试Demo Stress首先放一张最终Stress Demo 运行图
一、准备
1. GD32 Keil工程
准备任意一个屏幕可以正常显示的GD32工程
2. LVGL源码
最新版现在已经是V9.2了这里我选择了常用的V8.3版本大家选择其他版本的时候配置上可能会略有差异 Download: LVGL Kernel 我们会得到一个压缩文件然后解压出来备用现在准备好了一个GD32 Keil工程和一个LVGL源码
二、LVGL移植
1. 文件操作
对于移植使用来说我们主要使用下面这几个LVGL的关键文件
在Keil工程中新”LVGL“文件夹
然后将上述文件拷贝至新建的文件夹内 把默认的“lv_conf_template.h”改名为“lv_conf.h”
进入”.\LVGL\examples“目录删除如下文件夹仅保留”porting“文件夹
修改后如下所示
进入”.\LVGL\demos“目录删除如下文件夹仅保留”stress“文件夹这里我们只跑这一个例程 修改后如下所示 把“.\LVGL\examples\porting“目录下的所有文件的”xxx_template“字样也删除掉 修改后如下所示
打开”.\LVGL\src\“文件夹我们在Keil中把这几个文件夹的以及对应的源文件都包含进去
首先创建同文件名的目录
然后把对应文件夹的源文件添加进来
Draw目录下需要注意首先添加目录下的源文件
然后添加”sw“目录下的所有源文件其他子目录下的不需要
然后是目录”extra“下的所有源文件注意这里的子目录很多一定要全部添加不要遗漏
然后是”font“、”hal“、”misc“、”widgets“文件夹
然后新建”LVGL_Porting“目录添加”example\porting“下的所有源文件
新建“LVGL_Demos”目录存放“demos”文件夹下的所有源文件
新建“”目录存放“”目录下的头文件
源文件添加完后接下来添加头文件路径按如下内容添加 然后回到“C/C”标签页勾选“C99 Mode” 接下来就是代码操作部分
2. 代码操作
首先是启用LVGL打开”lvgl_conf.h“文件在第15行的条件宏处改为”1“ 然后适当调小一下内存分配 这里可以尝试编译一下如果没有错误就可以进行下一步如果有请检查源文件或头文件是否有遗漏 然后打开”lv_port_disp.c“文件完成屏幕接口的适配首先启用条件宏然后把头文件的”xxx_template“删除因为我们已经在前面文件操作的时候重命名了然后包含自己的屏幕驱动文件并根据屏幕信息调整尺寸我的屏幕信息定义在自己的屏幕驱动文件的宏定义LCD_LENGTH和LCD_WIDTH中
#define MY_DISP_HOR_RES LCD_LENGTH //填写自己的屏幕尺寸信息
#define MY_DISP_VER_RES LCD_WIDTH //填写自己的屏幕尺寸信息然后右键跳转到lv_port_disp.h文件启用条件宏并修改头文件路径 回到”lv_port_disp.c“文件划到中间90行左右LVGL支持多个缓冲区MCU使用一般就用一个我们注释掉其他两种写缓存方式
添加自己的屏幕初始化函数和画点函数 这时候我们编译一下可以看到是0错误0警告 接下来我们启用LVGL例程的播放首先先调整堆栈空间的大小这里根据自己MCU大小适当修改
然后给LVGL一个系统时基打开”gd32f30x_it.c“文件首先添加头文件 然后在系统滴答里添加lvgl的心跳 然后进入lv_config.h文件把例程”LV_USE_DEMO_STRESS“的宏打开
回到main.c文件添加如下头文件
#include lvgl.h
#include lv_port_disp.h
#include lv_demo_stress.h在系统初始化中加入LVGL初始化 lv_init();lv_port_disp_init();在main函数中完成调用
int main(void)
{/* configure systick */systick_config();System_Init();lv_demo_stress();while (1){lv_timer_handler();delay_1ms(1);}
}然后我们编译运行 到这里我们就完成了LVGL的移植教程采用GD32但其他MCU均可参考后续大家可以使用NXP的GUI-Guider或百问网的LVGL中文教程完成UI设计以及LVGL的交互控制等内容LVGL应用项目展示
Bilibili: 基于GD32FreeRTOSLVGL的智能通用控制Demo【1-功能展示】