韦东山LVGL学习专题系列教程:零基础入门+进阶+项目学习

韦东山LVGL学习系列教程:零基础入门+进阶+项目学习

image

​ 这里的所有课程都没有用到UI设计器而是手撕代码,带你原汁原味地学习LVGL、开发LVGL项目。

学前准备

​ 课程要求起码具备基本的 C(或 C++)知识,如果你完全没有具备基本的 C(或 C++)知识,那么请先学习相关知识内容再学习这里的课程,视频教程:https://www.bilibili.com/video/BV1VM4y137Pm

【第一期】LVGL零基础入门

​ 建议先学习该课程:有LVGL开发基础之后再学习后续其他课程。无论您出于什么原因需要使用或者学习LVGL,该课程都适合您。

​ 课程没有用到UI设计器而是手撕代码,带你原汁原味地学习LVGL。课程不需要任何开发板即可学习:基于PC模拟器零基础入门、提升学习LVGL。在学习完成之后,会有扎实的LVGL基础,并且对与您后续切换到任意架构、平台,进行LVGL相关项目的开发都很有帮助。

​ 视频教程:https://www.bilibili.com/video/BV1or421L75s

完整目录:

第一章
1-1-1_课程介绍                                
1-2-1_获取课程资料                              
1-3-1_走进LVGL                              
1-4-0_设置CodeBlocks(补充内容-重要必看)             
1-4-1_windows PC模拟器(codeblock)运行LVGL      
1-5-1_如何管理资料和CodeBlocks工程 

章节介绍: 课程总体介绍、获取资料,了解LVGL,运行第一个工程(Hello,LVGL!)

第二章
2-1-1_如何获取LVGL的源码                         
2-1-2_LVGL的目录结构                           
2-1-3_LVGL的启动流程与内部机制初探                    
2-1-4_LVGL的裁剪初探                           
2-2-1_LVGL面向对象的编程思想(lv_obj_t)             
2-2-1_对象(lv_obj_t)                        
2-3-1_基础对象(lv_obj)                        
2-4-1_基础对象的大小(size)                       
2-5-1_基础对象的位置(position)                   
2-6-1_基础对象的盒子模型(Boxing model)             
2-7-1_基础对象的样式(styles)_上                   
2-7-2_基础对象的样式(styles)_下                   
2-8-1_基础对象的事件(events)                     
2-8-2_基础对象的事件冒泡(event BUBBLE)             
2-9-1_LVGL的定时器(lv_timer)-入门(上)            
2-9-2_LVGL的定时器(lv_timer)-入门(下)            
2-9-3_LVGL的定时器(lv_timer)-入门(课后思考)   

章节介绍:获取LVGL源码、了解其目录结构,初步理解LVGL控件的共通原理,为后面的学习打下坚实的基础

第三章
3-0-1_阶段总结与后续学习                           
3-0-2_如何运行示例代码(重要)                        
3-0-3_如何在工程中添加自己的代码文件                     
3-1-1_标签控件(lv_label)的用法(上)                
3-1-2_标签控件(lv_label)的用法(中)                
3-1-3_标签控件(lv_label)的用法(下)                
3-1-4_标签控件(lv_label)的用法(课后思考1)            
3-1-5_标签控件(lv_label)的用法(课后思考2)            
3-1-6_标签控件(lv_label)显示中文(上)               
3-1-7_标签控件(lv_label)显示中文(下)               
3-1-8_标签控件(lv_label)显示中文(课后思考1)     
3-2-1_按钮控件(lv_button)的用法                  
3-2-2_按钮控件(lv_button)的用法(课后思考1)           
3-2-3_按钮控件(lv_button)的用法(课后思考2)           
3-2-4_按钮控件(lv_button)的用法(课后思考3)(上)        
3-2-5_按钮控件(lv_button)的用法(课后思考3)(下)        
3-2-6_按钮控件(lv_button)的用法(课后思考4)   
3-3-1_进度条控件(lv_bar)的用法                    
3-3-2_进度条控件(lv_bar)的用法(课后思考1)             
3-3-3_进度条控件(lv_bar)的用法(课后思考2)                                           
3-3-4_进度条控件(lv_bar)的用法(课后思考3)(上)          
3-3-5_进度条控件(lv_bar)的用法(课后思考3)(下)   
3-4-1_滑动条控件(lv_slider)的用法                 
3-4-2_滑动条控件(lv_slider)的用法(课后思考1)          
3-4-3_滑动条控件(lv_slider)的用法(课后思考2)          
3-4-4_滑动条控件(lv_slider)的用法(课后思考3)          
3-4-5_滑动条控件(lv_slider)的用法(课后思考4)          
3-4-6_滑动条控件(lv_slider)的用法(课后思考5)          
3-5-1_圆弧控件(lv_arc)的用法(上)                  
3-5-2_圆弧控件(lv_arc)的用法(下)                  
3-5-3_圆弧控件(lv_arc)的用法(课后思考1)              
3-5-4_圆弧控件(lv_arc)的用法(课后思考2)              
3-6-1_环形加载器控件(lv_spinner)的用法              
3-6-2_环形加载器控件(lv_spinner)的用法(课后思考1)       
3-6-3_环形加载器控件(lv_spinner)的用法(课后思考2)       
3-7-1_矩阵按钮控件(lv_btnmatrix)的用法(上)          
3-7-1_矩阵按钮控件(lv_btnmatrix)的用法(下)          
3-7-2_矩阵按钮控件(lv_btnmatrix)的用法(课后思考1)      
3-7-3_矩阵按钮控件(lv_btnmatrix)的用法(课后思考2)      
3-7-4_矩阵按钮控件(lv_btnmatrix)的用法(课后思考3)      
3-7-5_矩阵按钮控件(lv_btnmatrix)的用法(课后思考4)(上)   
3-7-6_矩阵按钮控件(lv_btnmatrix)的用法(课后思考4)(下)   
3-8-1_列表控件(lv_list)的用法                    
3-8-2_列表控件(lv_list)的用法(课后思考1-实现一个wifi管理列表)
3-8-3_列表控件(lv_list)的用法(课后思考2-如何更新Wi-Fi列表) 
3-8-4_列表控件(lv_list)的用法(课后思考3-如何调整文字滚动的速度) 
3-8-5_列表控件(lv_list)的用法(课后思考4-list控件是最佳选择吗)
3-9-1_开关控件(lv_switch)的用法                  
3-9-2_开关控件(lv_switch)的用法(课后思考1-如何改变开关控件的外观)   
3-9-3_开关控件(lv_switch)的用法(课后思考2-如何给旋钮添加图标) 
3-9-4_开关控件(lv_switch)的用法(课后思考3-如何调整开关的圆角)               
3-10-1_复选框控件(lv_checkbox)的用法              
3-10-2_复选框控件(lv_checkbox)的用法(课后思考1-如何改变字体的大小) 
3-10-3_复选框控件(lv_checkbox)的用法(课后思考2-如何改变图标大小,以及未被选中时方框中的颜色)
3-10-4_复选框控件(lv_checkbox)的用法(课后思考3-如何去除或使用自定义复选框控件矩形框中的图标)
3-10-5_复选框控件(lv_checkbox)的用法(课后思考4-如何给文字添加划线效果)     
3-11-1_线条控件(lv_line)的用法                   
3-11-2_线条控件(lv_line)的用法(课后思考1-让线条从实线变为虚线) 
3-11-3_线条控件(lv_line)的用法(课后思考2-使用线条绘制正弦曲线) 
3-11-4_线条控件(lv_line)的用法(课后思考3-实现水果忍者游戏那样的滑动跟随效果)(上) 
3-11-4_线条控件(lv_line)的用法(课后思考3-实现水果忍者游戏那样的滑动跟随效果)(下) 
3-12-1_LED控件(lv_led)的用法                   
3-12-2_LED控件(lv_led)的用法(课后思考1-多种思路控制LED灯的开关状态)
3-12-3_LED控件(lv_led)的用法(课后思考2-模拟PWM灯的效果控制LED的亮度)    
3-12-4_LED控件(lv_led)的用法(课后思考3-设置LED控件的亮度扩散效果) 
3-13-1_下拉列表控件(lv_dropdown)的用法             
3-13-2_下拉列表控件(lv_dropdown)的用法(课后思考1-给下拉列表添加图标、背景)   
3-13-3_下拉列表控件(lv_dropdown)的用法(课后思考2-修改下拉列表的字体)
3-13-4_下拉列表控件(lv_dropdown)的用法(课后思考3-给列表中的选项添加图标、图片背景) 
3-13-5_下拉列表控件(lv_dropdown)的用法(不存在的课后思考4)  
3-14-1_滚轮控件(lv_roller)的用法                 
3-14-2_滚轮控件(lv_roller)的用法(课后思考1-如何修改样式)   
3-14-3_滚轮控件(lv_roller)的用法(课后思考2-如何整合多个滚轮设置的数据)
3-14-4_滚轮控件(lv_roller)的用法(课后思考3-选项的文本过长怎么办)   
3-15-1_消息框控件lv_msgbox的用法                  
3-15-2_消息框控件lv_msgbox的用法(课后思考1-如何添加新的关闭按钮)
3-15-3_消息框控件lv_msgbox的用法(课后思考2-如何自定义关闭按钮的样式和事件)     
3-15-4_消息框控件lv_msgbox的用法(课后思考3-如何改变footer的布局) 
3-16-1_富文本控件(lv_span)的用法                  
3-16-2_富文本控件(lv_span)的用法(课后思考1-如何使用百分比进行缩进)   
3-17-1_文本框控件(lv_textarea)的用法(上)           
3-17-2_文本框控件(lv_textarea)的用法(下)           
3-17-3_文本框控件(lv_textarea)的用法(课后思考1-如何选择指定的文本) 
3-17-4_文本框控件(lv_textarea)的用法(课后思考2-如何实现长按删除所有内容)    
3-17-5_文本框控件(lv_textarea)的用法(课后思考3-如何修改光标的颜色) 
3-17-6_文本框控件(lv_textarea)的用法(课后思考4-如何显示(输入)中文)
3-18-1_键盘控件(lv_keyboard)的用法               
3-18-2_键盘控件(lv_keyboard)的用法(课后思考1-如何自定义默认的事件处理回调)   
3-18-3_键盘控件(lv_keyboard)的用法(课后思考2-如何实现长按删除键删除文本框中的所有内容) 
3-18-4_键盘控件(lv_keyboard)的用法(课后思考3-如何为键盘定制皮肤)  
3-19-1_微调框控件(lv_spinbox)的用法(上)            
3-19-2_微调框控件(lv_spinbox)的用法(下)            
3-19-3_微调框控件(lv_spinbox)的用法(课后思考1-如何将微调框设置的数据转换为可用的格式(小数))
3-19-4_微调框控件(lv_spinbox)的用法(课后思考2-如何使用label控件显示转换后的数据(小数))
3-20-1_表格控件(lv_table)的用法(上)               
3-20-2_表格控件(lv_table)的用法(下)               
3-20-3_表格控件(lv_table)的用法(课后思考1-如何自定义单元格的样式)   
3-20-4_表格控件(lv_table)的用法(课后思考2-如何实时更新表格中的内容)  
3-20-5_表格控件(lv_table)的用法(课后思考3-如何让选中的单元格保持选中样式)     
3-20-6_表格控件(lv_table)的用法(课后思考4-如何通过keyboard控件更新表格中的内容)
3-21-1_标尺控件lv_scale的用法                    
3-21-2_标尺控件lv_scale的用法(课后思考1-如何通过参考示例代码了解标尺控件的更多用法?)
3-21-3_标尺控件lv_scale的用法(课后思考2-如何通过标尺控件实现一个温度计?)
3-22-1_图表控件(lv_chart)的用法2                 
3-22-1_图表控件(lv_chart)的用法(上)               
3-22-2_图表控件(lv_chart)的用法(下)               
3-22-3_图表控件(lv_chart)的用法(课后思考1-如何实现点击打印数据点的功能?)     
3-22-4_图表控件(lv_chart)的用法(课后思考2-如何实现实时缩放?) 
3-22-5_图表控件(lv_chart)的用法(课后思考3-如何在x、y轴上添加刻度?) 
3-23-1_日历控件(lv_calendar)的用法(上)            
3-23-2_日历控件(lv_calendar)的用法(下)            
3-23-3_日历控件(lv_calendar)的用法(课后思考1-如何为日历控件添加自定义绘制事件) 
3-24-1_图像控件(lv_image)的用法(上)               
3-24-2_图像控件(lv_image)的用法(下)               
3-24-3_图像控件(lv_image)的用法(课后思考1-如何使用LVGL的在线图像转换工具)   
3-24-4_图像控件(lv_image)的用法(课后思考2-如何通过文件系统直接显示图片文件)    
3-24-5_图像控件(lv_image)的用法(课后思考3-如何实现点击图片切换图片)  
3-25-1_图像按钮控件(lv_imagebutton)的用法          
3-25-2_图像按钮控件(lv_imagebutton)的用法(课后思考1-图像按钮控件工作原理浅析)
3-25-3_图像按钮控件(lv_imagebutton)的用法(课后思考2-可以给每个状态指定不同的图像源?)
3-26-1_动画图像控件(lv_animimg)的用法              
3-26-2_动画图像控件(lv_animimg)的用法(课后思考1-内部工作原理浅析)  
3-27-1_画布控件(lv_canvas)的用法                 
3-27-2_画布控件(lv_canvas)的用法(课后思考1-如何实现旋转)   
3-28-1_选项卡控件(lv_tabview)的用法               
3-28-2_选项卡控件(lv_tabview)的用法(课后思考1:如何在页面中添加内容) 
3-28-3_选项卡控件(lv_tabview)的用法(课后思考2:如何隐藏选项卡栏)   
3-28-4_选项卡控件(lv_tabview)的用法(课后思考3:如何改变或者添加背景) 
3-28-5_选项卡控件(lv_tabview)的用法(课后思考4:实现标签页无限循环滑动切换)    
3-29-1_平铺视图控件(lv_tileview)的用法             
3-29-2_平铺视图控件(lv_tileview)的用法(课后思考1-如何用基础对象实现平铺视图控件的效果)     
3-30-1_菜单控件(lv_menu)的用法(上)                
3-30-2_菜单控件(lv_menu)的用法(下)                
3-30-3_菜单控件(lv_menu)的用法(课后思考1-如何去掉标头)     
3-31-1_窗口控件(lv_win)的用法                    
3-31-2_窗口控件(lv_win)的用法(课后思考1-如何隐藏标头)      
3-32-1_Lottie控件(lv_lottie)的用法             
3-32-2_Lottie控件(lv_lottie)的用法(课后思考1-如何转换Lottie文件为16进制)

章节介绍: 主要学习LVGL中控件的用法,并通过小实战加深对控件的理解与应用,同时抛出问题在解决问题的过程中不断对LVGL进行深入的理解

第四章
4-1-1_Flex(弹性)布局的用法(上)                    
4-1-2_Flex(弹性)布局的用法(下)                                    
4-2-1_Grid(网格)布局的用法(上)                    
4-2-2_Grid(网格)布局的用法(下)                    
4-3_Flex(弹性)和Grid(网格)布局的区别

章节介绍:学习LVGL弹性、网格布局用法,并通过小实战加深对控件的理解与应用

第五章
5-1-1_LVGL文件系统模块的用法                       
5-1-2_LVGL文件系统模块的用法(课后思考1-LVGL是怎么对接不同的文件系统的)  
5-1-3_LVGL文件系统模块的用法(课后思考2-如何移植对接)         
5-2-1_通过LVGL文件系统模块的显示图片文件                 
5-2-2_通过LVGL文件系统模块的显示图片文件(课后思考1-图片解码器的初始化、工作流程、)    
5-3_FreeType控件(lv_freetype)的用法            
5-4_二维码控件(lv_qrcode)的用法                   
5-5_条形码控件(lv_barcode)的用法       

章节介绍:学习LVGL如何对接以支持的第三方库:文件系统、显示图片文件与使用字体文件显示文字、创建二维码与条形码,如何支持FFMPEG与RLE

第六章
6-1_文件资源管理器控件(lv_file_explorer)的用法        
6-2_拼音输入法控件(lv_ime_pinyin)的用法
6-3-1_快照控件(lv_snapshot)的用法
6-3-2_快照控件(lv_snapshot)的用法(课后思考1-快照控件有什么用)
6-3-3_快照控件(lv_snapshot)的用法(补充说明)
6-4_Monkey测试(压力测试)的用法

章节介绍:学习LVGL一些特殊控件的用法

第七章
7-1_更进一步理解LVGL的定时器
7-2_动画的用法
7-3_动画时间线的用法
7-4_LVGL动画的本质是定时器处理
7-5-1_为什么创建出来的不同控件会不一样?
7-5-2_为什么创建出来的不同控件会不一样?(课后思考1-如何通过裁剪控件或者更改主题节省资源)
7-6-1_物理按键代替触摸(组-Groups)(上)
7-6-2_物理按键代替触摸(组-Groups)(下)
7-6-3_物理按键代替触摸(课后思考1-物理按键控制(组)的初始化、工作流程(PC))
7-7-1_Windows HOOK拦截键盘输入模拟按键输入
7-7-2_Windows HOOK拦截键盘输入模拟按键输入(适配LVGL的输入设备-LV_INDEV_TYPE_BUTTON)

章节介绍:站在前面学习成果积累基础之上更深入一步探究LVGL的内部

第八章
8-1-1_基于FontAwesome 添加新SYMBOLS
8-1-2_基于FontAwesome 添加新SYMBOLS(课后思考1-Freetype+FontAwesome)
8-2_调试方法之LV_LOG
8-3_调试方法之LV_SYSMON(system monitor)

章节介绍:探讨LVGL的一些杂项玩法

第九章
9-1_移植适配 lv_lib_100ask
9-2_移植适配 lv_100ask_ui

章节介绍:学习如何移植基于LVGL的开源项目

第十章
10-1_LVGL的编码风格
10-2_如何阅读Changelog
10-3_如何阅读Roadmap
10-4-1_如何参与LVGL开发-为LVGL库做贡献(准备工作)
10-4-2_如何参与LVGL开发-为LVGL库做贡献(修改并提交PR)
10-4-3_如何参与LVGL开发-为LVGL库做贡献(讨论修改与合并)
10-5_第一期完结(后续进阶拓展学习指引)

章节介绍:了解LVGL的编码规范,阅读文档了解LVGL的最新进展与后续计划,如何为LVGL库做出自己的贡献

【第二期】LVGL MCU进阶提升

​ 该课程适合在学习了第一期课程之后学习,也就是适合有LVGL开发基础的时候学习。

​ 专注于LVGL在MCU上的开发教学,学习之后可以帮助您更好地在您的硬件上对LVGL进行适配/优化。同时课程还涉及如何在MCU设备上开发多个LVGL项目,如果您想提升LVGL+MCU的项目开发经验,那么这个课程适合您。

​ 视频教程:https://www.bilibili.com/video/BV1NBmoYcEvn

课程完整目录:

第一章
1-0_学前准备
1-1_课程介绍
1-2_获取课程资料
1-3-1_搭建开发环境(软件安装)
1-3-2_搭建开发环境(更新ST-Link的固件)
1-4-1_开发板的使用(组装开发套件)
1-4-2_开发板的使用(硬件测试)
1-5_创建第一个工程(Blink)
1-6_使用STM32CubeProgrammer烧写出厂固件
1-7_如何使用现成的工程

章节介绍: 课程总体介绍,获取资料,硬件的使用,搭建开发环境

第二章
2-1_移植LVGL的思路(重要)
2-2-1_STM32H7R的工程结构介绍
2-2-2_STM32H7R的工程结构介绍(实践操作)
2-2-3_STM32H7R的工程结构介绍(Loader工程问题解答)
2-2-4_STM32H7R的工程结构介绍(后续学习规划)
2-3_分析ExtMemLoader工程
2-4_分析Boot工程
2-5_分析Appli工程
2-6_最简单的Boot+Appli工程
2-7_复用现有工程为新工程
2-8-1_基于usbx实现虚拟串口打印
2-8-2_基于usbx实现虚拟串口打印(后续在SDRAM中调试程序的注意点)
2-9_适配LTDC驱动RGB LCD屏
2-10_适配IIC驱动GT911触摸面板
2-11-1_添加LVGL库(添加LVGL库)
2-11-2_添加LVGL库(提高编译效率)
2-11-3_添加LVGL库(多个工程复用一份LVGL库)
2-11-4_添加LVGL库(多个工程复用一份LVGL库-改进)
2-12_对接串口打印到LVGL库(LV_LOG)
2-13-1_对接显示驱动到LVGL库(初步适配)
2-13-2_对接显示驱动到LVGL库(添加心跳)
2-13-3_对接显示驱动到LVGL库(解决闪烁问题并提升刷新效果)
2-13-4_对接显示驱动到LVGL库(再次优化刷新效率)
2-14_对接触摸驱动到LVGL库
2-15_运行PC模拟器课程(第一期)的代码

章节介绍: 熟悉配套开发板,STM32CubeIDE和STM32CubeMX的开发模式,移植LVGL

第三章
3-1_在STM32CubeMX中添加并使用宏定义
3-2-1_LVGL内置的测试Demo(lv_demo_widgets)
3-2-2_LVGL内置的测试Demo(lv_demo_music)
3-2-3_LVGL内置的测试Demo(lv_demo_benchmark)
3-3_修改编译器优化等级提升显示效果
3-4-1_注意LVGL的分块刷新问题
3-4-2_注意LVGL的分块刷新问题(补充)
3-5-1_添加DMA2D提升显示效果(测试)
3-5-2_添加DMA2D提升显示效果(对接到LVGL)
3-5-3_添加DMA2D提升显示效果(使用内部RAM作为显存)
3-6-1_旋转显示(概念)
3-6-2_旋转显示(硬件旋转)
3-6-3_旋转显示(软件旋转-整帧旋转)
3-6-3_旋转显示(软件旋转-部分旋转)
3-7_旋转触摸

章节介绍: 驱动接口优化,提升显示效果

第四章
4-1_LVGL的输入设备接口
4-2-1_LVGL的输入设备接口-BUTTON(资源配置)
4-2-2_LVGL的输入设备接口-BUTTON(对接)
4-2-3_LVGL的输入设备接口-BUTTON(补充)
4-3-1_LVGL的输入设备接口-ENCODER(资源配置)
4-3-2_LVGL的输入设备接口-ENCODER(对接)
4-4-1_LVGL的输入设备接口-KEYPAD(资源配置)
4-4-2_LVGL的输入设备接口-KEYPAD(对接)
4-5_通过3个按键替代编码器.
4-6_LVGL的设备接口总结
4-7-1_基于无源蜂鸣器为LVGL添加交互反馈音效(资源配置)
4-7-2_基于无源蜂鸣器为LVGL添加交互反馈音效(实现基础功能)
4-7-3_基于无源蜂鸣器为LVGL添加交互反馈音效(完善)
4-8-1_屏幕背光调节(资源配置)
4-8-2_屏幕背光调节(通过滑动条调节亮度)
4-8-3_屏幕背光调节(无触摸自动降低亮度)

章节介绍: 更多的输入设备支持,如何添加交互反馈音效、调节屏幕亮度

第五章
5-1_适配SDMMC驱动FATFS文件系统
5-2-1_对接FATFS文件系统到LVGL
5-2-2_对接FATFS文件系统到LVGL(补充)
5-3_通过LV_FS显示SD卡中的图片文件
5-4_通过字体BIN文件显示文字
5-5-1_通过FreeType显示文字(移植FreeType源码)
5-5-2_通过FreeType显示文字(对接到LVGL与验证)

章节介绍: 适配文件系统并对接到LV_FS,图片与FreeType支持

第六章
6-1-1_适配FreeRTOS+LVGL(最简单的适配方式)
6-1-2_适配FreeRTOS+LVGL(为LVGL提供心跳)
6-2-1_LVGL的非线程安全问题(概念与现象)
6-2-2_LVGL的非线程安全问题(互斥量避免)
6-2-3_LVGL的非线程安全问题(LVGL内置机制避免)
6-2-4_LVGL的非线程安全问题(补充)
6-3-1_适配FreeRTOS+LVGL+FatFS
6-3-2_适配FreeRTOS+LVGL+FatFS(补充-配置技巧)
6-4_适配FreeRTOS+LVGL+FatFS+FreeType
6-5_让FreeRTOS使用指定的RAM(外部RAM)

章节介绍: 适配FreeRTOS,LVGL的非线程安全

第七章
7-1_开源项目的移植-lv_lib_100ask
7-2_开源项目的移植-lv_100ask_ui
7-3_第二期完结

章节介绍: 移植开源项目

【第三期】LVGL MPU进阶提升

​ 该课程适合在学习了第一期课程之后学习,也就是适合有LVGL开发基础的时候学习。

​ 专注于LVGL在MPU上的开发教学,学习之后可以帮助您更好地在您的硬件上对LVGL进行适配/优化。同时课程还涉及如何在MPU设备上开发多个LVGL项目,如果您想提升LVGL+MPU的项目开发经验,那么这个课程适合您。

​ 视频教程:https://www.bilibili.com/video/BV1or421L75s

【选修】小灶课-界面开发基础

​ 该课程适合在学习了第一期课程之后学习,也就是适合有LVGL开发基础的时候学习。

​ 课程专注于LVGL的界面开发基础,涉及内容:如何进行界面切换、如何实现多个界面、如何管理多个界面的代码等方面。学习之后能帮助你提升LVGL的界面开发能力。

​ 视频教程:https://www.bilibili.com/video/BV1SFknYQEFT

课程完整目录:

1_课程介绍与学前准备
2_资料获取
3_搭建开发环境
4_LVGL开发文档
5-1_实现两个界面(准备工作)
5-2_实现两个界面
6-1_实现界面切换(上)
6-2_实现界面切换(中)
6-3_实现界面切换(下)
7-1_改进界面切换(看不见的处理不好时会出现的问题)
7-2_改进界面切换(看不见的处理不好时会出现的问题的解决)
7-3_改进界面切换(优化框架-准备)
7-4_改进界面切换(优化框架-编码)
7-5_改进界面切换(优化框架-优化)
7-6_改进界面切换(优化框架-添加图标)
8-1_实现滑动返回(分析与准备)
8-2_实现滑动返回(实现检测载体)
8-3_实现滑动返回(功能实现)
8-4_实现滑动返回(优化)
9-1_实现下拉界面(分析与准备)
9-2_实现下拉界面(实现检测载体)
9-3_实现下拉界面(实现下拉跟随)
9-4_实现下拉界面(关闭下拉页面)
9-5_实现下拉界面(优化)
10_桌面图标的布局
11_进阶提升学习

【选修】小灶课-国际化方案(多语言)

​ 该课程适合在学习了第一期课程之后学习,也就是适合有LVGL开发基础的时候学习。

​ 课程专注于LVGL的国际化方案,基于LVGL官方提供的 lv_i18n 实现国际化(多语言)项目。课程由浅入深,在讲解了lv_i18n 的基础核心用法之后,进而探讨在多界面环境中实现国际化。学习之后能帮助你实现自己的LVGL国际化项目。

​ 视频教程:https://www.bilibili.com/video/BV1ZTkyYNEa4

课程完整目录:

1_课程介绍与学前准备.mp4
2_资料获取.mp4
3-1_搭建开发环境(CodeBlocks).mp4
3-2_搭建开发环境(lv_i18n).mp4
3-3_搭建开发环境(FreeType).mp4
4-1_方案实现(测试FreeType).mp4
4-2_方案实现(理解lv_i18n的操作流程).mp4
4-3_方案实现(lv_i18n的使用流程与内部原理).mp4
4-4_方案实现(如何动态切换语言).mp4
4-5_方案实现(如何重命名翻译关键字).mp4
5-1_如何在复杂界面中切换语言(分析).mp4
5-2_如何在复杂界面中切换语言(准备与更改默认字体).mp4
5-3_如何在复杂界面中切换语言(实现切换功能).mp4
5-4_如何在复杂界面中切换语言(代码和目录很多时如何生成翻译).mp4
6_进阶提升学习案例.mp4

技术交流学习

欢迎加入讨论:

  • 社区交流: https://forums.100ask.net
  • QQ技术交流群(如群满,请加qq:401684796 验证备注:LVGL):962138234
  • 微信交流群:添加微信: baiwenkeji_fae 验证备注:LVGL

获取更多的LVGL教程

1 个赞