g36xcv 发表于 2023-5-26 23:26

国民技术N32G45X移植LVGL8.3+ILI9488

硬件方面

使用的是自制的一块控制板,主控选用的是国民技术的N32G452VEL7芯片,屏幕大小为3.5寸,驱动型号为ILI9488。
1.2 软件方面

从GitHub中获取LVGL码源: GitHub - lvgl/lvgl at release/v8.3
按照下边图示(步骤1-5)选择V8.3版本并进行下载



g36xcv 发表于 2023-5-26 23:27


g36xcv 发表于 2023-5-26 23:28

移植LVGL
2.1 修改LVGL相关文件名

    打开下载好的LVGL-V8.3文件夹,移植LVGL主要就是操作下边这四份文件(/文件夹)


g36xcv 发表于 2023-5-26 23:30

在项目工程文件夹中创建一份新文件夹,并命名为LVGL,然后复制LVGL-V8.3里边的这四份文件,其中porting文件夹是在上图的examples文件夹里。

为了看着专业一点的感觉,我们可以将文件名进行修改,
lv_conf_template.h重命名为lv_conf.h、
porting文件夹里的lv_port_disp_template.c重命名为lv_port_disp.c、
lv_port_disp_template.h重命名为lv_port_disp.h。

port_disp (显示相关)
port_fs (文件系统相关)
port_indev(输入设备相关)

g36xcv 发表于 2023-5-26 23:30

加载LVGL头文件

    将LVGL的头文件加载进来并设置为C99模式


g36xcv 发表于 2023-5-26 23:31

添加LVGL码源 在项目工程文件栏处创建两份新的文件

LVGL_SRC (用来存放lvgl源码)
LVGL_POR(用来配置lvgl接口文件)

g36xcv 发表于 2023-5-26 23:32

LVGL_POR文件里边加载这三份文件,(仅屏幕显示)


g36xcv 发表于 2023-5-26 23:33

将LVGL/src里边的所有.c文件全都加载进LVGL_SRC文件里,数量有点多,注意别落下。


g36xcv 发表于 2023-5-26 23:33

2.4 修改lv_conf.h文件 将lv_conf.h中if 0改成 if 1



g36xcv 发表于 2023-5-26 23:34

修改内存大小

g36xcv 发表于 2023-5-26 23:34

打开显示CPU使用率和FPS计数


g36xcv 发表于 2023-5-26 23:35

修改lv_port_disp.c文件

    将lv_port_disp.c中if 0改成 if 1
    将lv_port_disp_template.h改为lv_port_disp.h

g36xcv 发表于 2023-5-26 23:37

修改屏幕分辨率


g36xcv 发表于 2023-5-26 23:37

选择缓存配置


g36xcv 发表于 2023-5-26 23:38

添加屏幕填充函数
LCD_Color_Fill(area->x1,area->y1,area->x2,area->y2,(uint16_t *)color_p);




g36xcv 发表于 2023-5-26 23:39

修改lv_port_disp.h文件

    将lv_port_disp.h中if 0改成 if 1
    将lvgl/lvgl.h改为lvgl.h


g36xcv 发表于 2023-5-26 23:39

lvgl初步编译 经过编译后,出现一些错误:


g36xcv 发表于 2023-5-26 23:40

按住ctrl+F,按照下图操作来进行批量替换


g36xcv 发表于 2023-5-26 23:40

修改完成后编译通过



g36xcv 发表于 2023-5-26 23:44

屏幕显示测试 3.1修改堆栈大小 Stack栈改为0x1000(4Kb)
Heap堆改为0x800(2Kb)



页: [1] 2 3
查看完整版本: 国民技术N32G45X移植LVGL8.3+ILI9488