LVGL 移植 & 驱动适配
📘 全流程 · 30章
01
LVGL概述
什么是LVGL
特点与优势
应用场景
版本演进与选择
02
开发环境搭建
硬件平台选择
软件工具链安装
源码获取与工程结构
03
显示驱动适配(上)
显示接口协议
帧缓冲概念
单缓冲与双缓冲
04
显示驱动适配(下)
显示初始化函数
flush_callback
像素格式与颜色深度
实测验证与调优
05
触摸驱动适配
触摸协议初始化
read_callback
坐标校准与多点触控
FT6x36/CST8xx案例
06
LVGL配置文件详解
lv_conf.h核心参数
颜色深度与DPI
内存池大小配置
日志与断言开关
07
LVGL初始化流程
lv_init()
lv_tick_inc()
lv_disp_drv_register
lv_indev_drv_register
lv_timer_handler
08
任务调度与心跳机制
定时器系统
lv_tick_inc实现
lv_timer_handler频率
优化
09
内存管理策略
LVGL内存分配器
动态/静态内存
内存碎片优化
内存分析工具
10
对象系统与基础控件
lv_obj_t结构体
创建与销毁对象
父子层级
lv_btn/lv_label/lv_slider
11
样式系统 (Style)
样式属性详解
本地与全局样式
样式继承与优先级
状态样式
12
事件系统
事件注册与回调
点击/长按/拖动
事件冒泡与捕获
自定义事件
13
布局系统
Flex布局
Grid布局
自动布局与手动定位
响应式布局技巧
14
动画系统
创建与运行动画
缓动函数选择
动画路径与关键帧
性能优化与帧率
15
图像与字体
图像解码器
图像缓存策略
字体加载与自定义
lv_font_conv工具
16
高级控件(上)
lv_chart图表
lv_table表格
lv_canvas画布
lv_roller滚轮
17
高级控件(下)
lv_dropdown
lv_msgbox
lv_span富文本
lv_spinbox
18
输入设备管理
键盘输入适配
编码器适配
外部按键映射
输入设备组管理
19
多语言与国际化
UTF-8支持
多语言字符串表
动态切换语言
RTL布局支持
20
文件系统集成
LVGL文件抽象层
对接FatFS/SPIFFS
文件读写示例
资源文件管理
21
RTOS集成
FreeRTOS任务创建
互斥锁保护LVGL
优先级与栈配置
多核注意事项
22
性能优化实战
渲染性能分析
脏矩形机制
局部刷新策略
降低CPU占用率
23
功耗优化
睡眠与唤醒
帧率动态调整
局部刷新减功耗
电池设备优化案例
24
调试与日志
内置日志系统
断言与错误处理
模拟器调试
常见崩溃排查
25
单元测试与自动化
LVGL测试框架
UI自动化脚本
截图对比测试
持续集成CI
26
主题系统
内置主题
自定义主题创建
主题切换机制
主题与样式关系
27
LVGL与GUI Builder
SquareLine Studio
UI设计器导出代码
手动与可视化混合
28
常见问题与避坑
屏幕闪烁
触摸漂移
内存不足
版本兼容性
29
综合实战项目(上)
项目需求分析
UI架构设计
页面路由与状态管理
数据绑定与更新
30
综合实战项目(下)
完整代码实现
性能调优与测试
发布与固件烧录
课程总结与进阶