20231201-LVGL模块入门

GUI简介

GUI 库:图形用户界面库,只要调用gui库的函数即可快速绘制出所需要的用户界面

开发难度低
可移植性高

风格统一、协调

嵌入式系统中常用的gui库

emwin

LVGL

TouchGFX

QT

LVGL简介

Light and versatile graphics library 是一个轻量、多功能的开源图形库。

LVGL移植要求

LVGL资料获取

LVGL库软件介绍

课堂总结

支持多种输入设备

部件、功能丰富

具备高级图形特征

支持多种样式属性

C语言编写

css 样式设计理念

LVGL 移植要求 熟悉

16 32 64 为¥微控制器或处理器

主控频率 > 16Mhz

Flash/ROM >64kb 建议180kb以上

RAM > 8kb 建议 24kb以上

图形缓冲区 > 水平分辨率像素,建议大于1/10 屏幕总像素

C99 或更新的版本的编译器

此要求仅针对v8版本的LVGL


优化LVGL 运行效果的方法

提高芯片主频

增大 SRAM 容量,提高读写速度

增大图形缓冲区,使用双缓冲

减小需要刷新的总像素


1
2
3
4
5
6
7
8
9
10
11
12
std::vector<std::thread>
jthread

uart

public:
template <typename Fn, typename ... >

std::any

private:
void* m_fun;

模板函数

ranges

类型

beep

后备区域BKP

RCC_BDCR
LSE

扭力扳手

RTC_PRER PREDIV_A 异步预分频器

ck_apre
ck_spre

0xff 即256分频

时间和日期相关寄存器

BCD码

可编程闹钟

周期性自动唤醒

16位可编程自动重载递减计数器

ck_spre

软件清零WUTF标志

TR 寄存器

0

写保护

WUTIE

位14

ALRAE

FMT 为小时格式选择位

ss[15:0]

亚秒值=(PREDIV_S-SS)/(PREDIV_S+1)

ALRBF

ALRAF

init 为初始化模式控制位

RTC唤醒寄存器

闹钟 秒的

备份寄存器

BKP 存储重要的数据

EEPROM

LSE
RTC

usmart 设置时间

hal 库

HAL_RTC_Init()

PutPut 使能A输出

HAL_RTC_SetTime() 设置rtc的时间函数

SetDate 是设置RTC 的日期函数

GetTime 函数

取消备份区域写保护

LSE RTC

唤醒中断,闹钟

g_rtc_handle

句柄

声明与使用靠近

LSE 外部低速时钟

1
2
3
4
5
6
7
8
9
10
11
12
13
retry--

LSI

rtc_read_bkr();

sprintf(tbuf,'Time:%02d',hour,min,sec)

rtc_read_bkr

rtc_get_week(uint16_t year,uint16_t month,uint16_t day)

AlarmAEventCallback

LVGL 资料获取

demos LVGL 官方演示代码

docs LVGL 文献,解析部件的使用方法

env_support 环境支持 MDK ESP RTThread

examples 示例、输入输出设备接口文件

scripts LVGL 手稿

src LVGL 源文件

tests 官方人员的测试代码

lv_conf_template.h LVGL 的剪裁文件

lvgl.h LVGL 包含的头文件

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2015-2024 TeX_baitu
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~