🎮 屏幕驱动 & LVGL
30章 · 从零到实战
📚 风格 · 全彩目录
01
📌 课程导学与硬件准备
了解游戏机屏幕驱动与LVGL的关系,准备开发板、屏幕模块及接线工具
02
🔌 屏幕硬件接口详解
SPI与并行接口区别,引脚功能解析,根据数据手册确定驱动时序
03
🛠️ 搭建开发环境
安装VS Code、PlatformIO或Keil,配置编译器与调试器,创建空白工程
04
⚙️ GPIO与SPI外设初始化
HAL库/ESP-IDF配置SPI时钟、极性、相位,初始化控制引脚
05
📜 编写屏幕初始化序列
从数据手册提取初始化命令,通过SPI发送配置数组,验证屏幕点亮
06
🎨 实现像素点绘制函数
封装底层写像素函数,理解显存与坐标映射,测试单点颜色填充
07
📐 绘制基本图形
画线、画矩形、画圆,Bresenham算法优化直线绘制
08
🔤 字符与汉字显示
制作ASCII字模库,字符绘制函数,引入GB2312字库显示中文
09
🖼️ 图片与BMP解码
解析BMP文件头,读取像素数据,将图片显示到屏幕上
10
👆 触摸屏驱动基础 (选学)
I2C接口触摸芯片(FT6236)初始化,读取触摸坐标
11
🧩 LVGL简介与移植准备
了解LVGL架构(对象、样式、事件),下载源码,准备移植文件
12
⚡ LVGL配置文件详解
修改lv_conf.h,配置颜色深度、内存大小、帧缓冲数量
13
🖥️ LVGL显示驱动接口对接
实现disp_flush回调函数,绑定屏幕驱动与LVGL显示驱动
14
🖱️ LVGL输入设备接口对接
实现touchpad_read回调,将触摸数据传递给LVGL
15
⏱️ LVGL心跳与任务调度
配置定时器心跳(lv_tick_inc),主循环调用lv_task_handler
16
🧊 LVGL基础对象实战
创建按钮(lv_btn)、标签(lv_label),设置位置、大小、样式
17
🎨 LVGL样式系统深入
样式状态(默认、按下、禁用),自定义颜色、圆角、阴影
18
📬 LVGL事件处理机制
为按钮添加点击事件,实现页面切换、数值调整等交互
19
📦 LVGL布局与容器
使用lv_cont、lv_page创建布局,实现滚动列表
20
📊 LVGL图表与仪表盘
lv_chart绘制折线图、柱状图,lv_meter制作仪表盘
21
🎞️ LVGL图片与动画
加载外部图片(PNG/JPG),lv_anim创建平移动画、淡入淡出
22
⌨️ LVGL键盘与输入组
实现屏幕键盘(lv_keyboard),管理输入组焦点切换
23
🌐 LVGL多语言与国际化
字体工具生成多语言字库,动态切换语言
24
🚀 LVGL性能优化
分析帧率,减少重绘区域,使用DMA加速数据传输
25
🧠 LVGL内存管理
监控内存使用,优化对象创建与销毁,避免内存碎片
26
📸 综合项目一:电子相册
触摸按钮翻页与缩放,带触摸交互的电子相册
27
📈 综合项目二:监控仪表盘
实时数据监控,显示温度、湿度曲线
28
🐍 综合项目三:贪吃蛇游戏
简易游戏界面,使用LVGL绘制游戏元素
29
🔍 调试与常见问题排查
屏幕花屏、触摸漂移、LVGL卡顿等解决方案
30
🎯 课程总结与进阶方向
回顾核心知识点,RTOS+LVGL、SquareLine Studio等进阶路径