一、LVGL简述
1.丰富且强大的模块化图形组件:按钮、图表、列表、滑条、图片等
2.高级图形引擎:动画、抗锯齿、透明度、平滑滚动、图层混合等效果
3.支持多种输入设备:触摸屏、键盘、编码器、按键等
4.配置可裁剪,最低资源占用:64K Flash,16K RAM
5.基于UTF-8的多语种支持,例如中文、日文、韩文、阿拉伯文等
6.支持操作系统、外置内存、以及硬件加速
7.支持模拟器仿真,可以无硬件进行开发
二、准备STM32工程(裸机)
1.硬件要求
芯片资源:Flash>128K,RAM>64K;(LVGL至少占用:Flash>64K,RAM>16K)
显示屏:建议使用16位色深的彩屏, 1.44寸、2.8寸、4.3寸等等
不建议使用常用的0.96寸OLED屏,指甲大小的单色屏,耗100K资源去撑它,没搞头
2.STM32工程要求
堆栈大小:Heap、Stack,设置为:0x1000;
准备:画点函数,用于后面注册LVGL的显示功能;
准备:触摸检测函数 (返回:0-未按下、1-按下)、坐标获取函数,用于注册LVGL的触屏功能;
三、下载LVGL
v8.3版本,网上教程资源众多、移植简单,是目前最广泛使用的版本
官方下载链接:https://github.com/lvgl/lvgl
需要用到的是上图中的3个文件夹 + 2个h文件
四、源文件裁剪
1.在keil工程目录下 Middlewares 文件夹中新建LVGL文件夹,把上面的3个文件夹 + 2个h文件放进去
“lv_conf_template.h”,是LVGL配置参数的重要文件。
2.原文件名:“lv_conf_template.h”,修改为: “lv_conf.h”;
3.删除不需要的文件夹
打开文件夹:“LVGL / examples”:只保留 porting 文件夹,其它的文件夹和文件,都删除掉
4、修改 porting 里面的文件名称
6个文件的名称,都删除 “_template” 字样
这个 “LVGL” 文件夹,以后可以复制给各类的工程使用,不限于STM32的工程,通用
五、STM32工程添加 LVGL 文件
1.打开Keil,在工程里,添加4个文件夹(Groups);
2.为每一个文件