首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
软件与程序人生
›
DevOps与敏捷开发
›
GD32+LVGL移植教程(超详细)——基于GD32F303X系列MCU ...
返回列表
发新帖
GD32+LVGL移植教程(超详细)——基于GD32F303X系列MCU
[复制链接]
发表于 2026-1-3 16:29:44
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
版本
: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);
}
}
复制代码
然后我们编译运行:
公众Hao复兴关键字【1025】直接下载工程文件,教程虽接纳GD32但其他MCU均可参考,后续各人可以利用NXP的GUI-Guider或百问网的LVGL中文教程完成UI计划以及LVGL的交互控制等内容,LVGL应用项目展示:
Bilibili: 基于GD32+FreeRTOS+LVGL的智能通用控制Demo【1-
功能
展示】
回复
使用道具
举报
返回列表
浏览过的版块
数据仓库与分析
物联网
Oracle
SQL-Server
鸿蒙
SAAS
网络安全
分布式数据库
Java
开源技术
圆咕噜咕噜
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表