欢迎光临散文网 会员登陆 & 注册

单片机低代码交互UI制作 - LVGL+Squareline+Arduino平台 学习记录(2)

2023-07-08 15:33 作者:-CVZZ-  | 我要投稿

LVGL库安装

既然使用的是LVGL显示,那它自身这个库是必须得有的,嗯,这是句废话。

LVGL需要 32kB RAM、128 kB ROM,但不是说这些就够了,帧缓冲区需要至少 1/10 屏幕大小的RAM进行渲染,至于是多大呢,以320*240分辨率为例,需要320*240/10*4=30720,也就是30K左右。

存储像素点数据的数据类型为lv_color_t,lv_color_t结构体的大小为4字节,包含红、绿、蓝和透明通道,每个都是uint8_t类型,也就是一个字节,值为0~255,所以要*4。

也就是说啥还没干,60多k的RAM已经没了。

注意,这是基本条件!

通常要比这多不少,所以LVGL放到单片机这个层面来说的话还是很吃配置的,什么328p、什么f103赶紧洗洗睡吧,用U8G2搞单色屏不好吗?

相比较而言,乐鑫家的芯片性能强悍价格便宜,即使不用WIFI把它只当个单片机用也是十分优秀的存在,周边电路少,功耗低,相近价位的没一个能打的。

再加上合宙刨了老底,虽然板子设计的有时让人很难受,当然也有芯片本身的原因,但价格是真香啊,这点困难有什么是便宜克服不了的,仿版的328mini都比它贵。

328在ESP32面前算个什么东西,不就多了车规级这几个字嘛,记得最初接触Arduino,那会IDE还是0点几版本的时候,价格也没比现在高多少,小10年了价格都没干下来,没有Arduino,328又是谁知道的什么玩意,只能说AT牛批。。。

和TFT_eSPI库一样,LVGL这个库也是可以直接在Arduino IDE中直接安装的,搜索LVGL即可。

LVGL官网:https://lvgl.io

LVGL库下载:https://github.com/lvgl/lvgl/releases

LVGL官方手册:https://docs.lvgl.io/master/intro/index.html

这个库更新挺频繁的,我升到了8.3.7,图片还是8.3.6的,对齐Squareline 1.3.0就行,毕竟最终不是想去码代码,还是和图形化软件对齐最好,不过通常小版本都是通用的,不是大更新基本无伤大雅。

LVGL需要改动的配置文件叫lv_conf.h

配置需要以下几步:

1、首先进入Arduino IDE的库文件夹,过程和上篇TFT-eSPI的一样

2、找到LVGL的库文件夹,名是小写的lvgl

3、进入,找到名为lv_conf_template.h的文件

4、复制一份,返回上一级文件夹粘贴,是的不是在lvgl这个文件夹内,并改名为lv_conf.h。

是不是也看到上一篇安装的TFT_eSPI这个库了,这个操作确实有点不常见。

下一步开始修改,lv_conf.h里面东西很多,我做了份翻译注释的版本在最后面,看不懂的可以参考下。

修改步骤:

1、15行改为1,这个是开启lvgl,不开不能用

2、按你的屏幕修改颜色设置,通常是不用改的,我的是16位色,RGB565格式。


3、通常改这几个就够了,需要其它功能的自己翻,需要开启些性能显示的可以搞这几个。

操作完了吗?

这一步如果使用Squareline的话并不是必要的,因为Squareline会输出这个文件,到时候拷贝到lvgl文件夹同级的这个地方就行,这里写也只是加深下注意。

到这一步LVGL的相关准备工作就结束了,测试不了,官方的例程只支持到7版本,编译会报错,现在最新的都8.3.8了,以后够呛有例程了。

由于屏幕这东西,分辨率太多,适配起来麻烦,懒得搞了有机会再说,后面直接上Squareline做实例来演示/测试吧,这篇其实只要库下载安装好了,其它基本都是废话。

最后,放一下lv_conf.h的翻译。


单片机低代码交互UI制作 - LVGL+Squareline+Arduino平台 学习记录(2)的评论 (共 条)

分享到微博请遵守国家法律