LVGL学习

****MinGW版本选择:8.1.0

***demo是完整的工程,example 是一个小的案例

***宏定义没打开就会是灰色的

也会报这个错误

如果使用需要打开宏定义在lv_conf.h文件下打开

***vscode运行出错分析

这种情况如果源文件如果存在,还报错,就是没有添加进入CMakeLists.txt,

加入

***LVGL原理:

把绘制常用的图形封装成类或,c,c++,绘制成子单元

GUI框架是凌驾于不同的显示屏之上的,不同显示屏描点实现的方法可能不一样,但是不影响,只需要把描点的函数按照GUI、lvgl的框架给出,在绘制时只需要按照需要去调用点的绘制函数。

1、软件模拟时执行文件中要加SDL2.dll图形处理文件,不然不会显示图片

2、CMakeLists.txt的作用

project(lvgl)  :指定当前项目的名字

add_executable(main main.c mouse_cursor_icon.c ${SOURCES} ${INCLUDES})  :指定源文件生成可执行程序main

include_directories(${SDL2_INCLUDE_DIRS}) :源文件生成过程中需要搜索的头文件目录

2.1、生成Makefile文件(构建规则),在使用make构建工具根据Makefile里面的规则去构建当前的项目(编译并生成可执行程序)

3、main函数中的

lv_init();    :初始化lvgl库

hal_init();   :硬件,显示、输入设备、tick初始化(替换为自己的硬件设备)

lvgl每隔5ms跳一次

 while(1) {

      /* Periodically call the lv_task handler.

       * It could be done in a timer interrupt or an OS task too.*/

      lv_timer_handler();

      usleep(5 * 1000);

  }

4、lv_conf.h的配置

颜色配置

刷新时间配置

是否开启

字体设置

5、

6、

给按钮添加单机事件

7、

主页面上绑定->按钮  ,  按钮上在绑定->文字  , 绑定按钮触发的->事件(事件有类型)(跳转函数)(传入参数),

8、***注意

不同电脑生成的Build路径不一样,所以要卸载,重新生成

9、在   lv_obj_t   的基础上封装一些功能   lv_obj_t * btn=lv_btn_create(screen);

10、拿出来一个对象,在对对象做相应的设置

11、矩阵键盘

12、获取矩阵对应按键值:

13、文本框输入

14、图片

**** 注意生成图片使用的名字

1、在LVGL的网站进行转换

2、添加转换后的文件到工程

3、添加到

4、注意图片的名字

5、代码编写

15、gif动图显示

**注意图片要足够小

16、创建布局

布局九宫格显示

17、page页面跳转

18、按钮页面设置

19、显示表格数据(动态显示有一点问题,他自己写的)

20、环境

vscode下面一行的配置是根据文件夹里面的内容来的

别人的工程build文件夹下面的内容有路径,所以需要删除

21、移植

1、添加文件

2、数据不匹配

在lv_conf.h中修改

22、温度显示界面

1、

工程图形分辨率设置

RGB565,

lvgl版本

到处路径

2、界面创建方法

2.1、单价Screen

2.2选中Screen单击Image

2.3加入图片

2.4添加label,修改参数

给控件写名字,在代码中寻找,通过这个名字修改

给screen添加事件

screen1左滑到screen2

screen2右滑到screen1

23、屏幕移植

1、寄存器描述

2、芯片手册

3、液晶屏手册

引脚1-18

Pin - 1   GND

Pin - 2   背光

Pin - 3   电源3.3v

Pin - 4   输出IO  连接到3.3v

Pin - 5-6   GND

Pin - 7-10 SPI引脚

Pin - 11  重置引脚

Pin - 12  GND

Pin -  13 触摸部分的 scl     -  I2C

Pin -  14 触摸部分的 sda    -  I2C

Pin -  15 触摸部分的重置引脚

Pin -  16 触摸部分的中断引脚

Pin -  17 触摸部分的供电

Pin -  18 触摸部分的GND

4、D/C引脚说明

:DC这个引脚是单片机控制OLED写入命令还是数据,因为它的数据线和命令线共用一根线MOSI即主机输出从机接收端口,这块屏的通信协议是一个没有MISO只有MOSI的SPI协议,即通过SPI连接MCU和OLED,DC接MCU,如果要向OLED写入命令,拉高DC,如果要向OLED写入数据,拉低DC(这是LCD5110的SPI协议,不知道和你这块屏是不是一样的,但是接口是一样的,可以参考5110)!

24、其他教程的移植方法

24.1keil工程配置

24.2缓存设置

使用一级缓存

两级缓存

全缓存

LV_VER_RES_MAX参数缺失的,自己写

24.3打开日志

24.4输入设备刷新时间配置

****************************************************************************************************

正点原子部分的LVGL配置

****双缓冲模式可以同时传递和刷新数据,各用一个缓冲

****DMA2D基于:

        课程代码4基于课程代码2

*****FreeRTOS配置:

  代码的临界段也称为临界区,指处理时不可分割的代码区域,一旦这部分代码开始执行,则不允许任何中断打断

***使用官方的demo需要置一

***移植完LVGL和FreeRTOS内存不够的处理方法

如果LVGL控件太多分配的内存不够也会报错

越大显示效果越好

***RGB图像一个像素点要16个bit才能表示它的颜色

***sizeof实际上是获取了数据在内存中所占用的存储空间,以字节为单位来计数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值