# LVGL教程资料 **Repository Path**: bigboyone/lvgl_100ask_course_v9 ## Basic Information - **Project Name**: LVGL教程资料 - **Description**: 视频教程: https://www.bilibili.com/video/BV1WE421K75k qq交流群:774083288 如群满请加qq:401684796 验证备注:lvgl - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: https://lvgl.100ask.net - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 23 - **Created**: 2025-04-11 - **Last Updated**: 2025-04-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

100ASK logo

韦东山百问网LVGL教程资料

韦东山 [百问网](https://www.100ask.net) LVGL教程包括视频教程、文档教程,由韦东山 [百问网](https://www.100ask.net) 开发团队研发,资料源码全部开源(MIT License),祝你学习愉快! - 视频教程地址:https://www.bilibili.com/video/BV1WE421K75k - LVGL英文开发参考手册(LVGL官方):[https://docs.lvgl.io](https://docs.lvgl.io) - LVGL中文开发参考手册(韦东山百问网):[http://lvgl.100ask.net](http://lvgl.100ask.net) - 获取更多的LVGL视频教程: - 淘宝:https://item.taobao.com/item.htm?id=765173717673 - 天猫:https://detail.tmall.com/item.htm?id=779667445604 # 介绍(Introduction) 这里的所有课程都没有用到UI设计器而是手撕代码,带你原汁原味地学习LVGL、开发LVGL项目。 课程要求起码具备基本的 C(或 C++)知识,如果你完全没有具备基本的 C(或 C++)知识,那么请先学习相关知识内容再学习这里的课程。 具备基本的 C(或 C++)知识: - [指针](https://www.tutorialspoint.com/cprogramming/c_pointers.htm) - [结构体](https://www.tutorialspoint.com/cprogramming/c_structures.htm) - [回调函数](https://www.geeksforgeeks.org/callbacks-in-c/) # 学习路线(Path) **建议学习顺序: 第一期 → 按需学习第二、三期→ 按需学习小灶课** ## 【第一期】LVGL零基础入门 建议先学习该课程:有LVGL开发基础之后再学习后续其他课程。无论您出于什么原因需要使用或者学习LVGL,该课程都适合您。 课程没有用到UI设计器而是手撕代码,带你原汁原味地学习LVGL。课程不需要任何开发板即可学习:基于PC模拟器零基础入门、提升学习LVGL。在学习完成之后,会有扎实的LVGL基础,并且对与您后续切换到任意架构、平台,进行LVGL相关项目的开发都很有帮助。 视频教程:[https://www.bilibili.com/video/BV1or421L75s](https://www.bilibili.com/video/BV1or421L75s) 完整目录: ```shell 第一章 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](https://www.bilibili.com/video/BV1NBmoYcEvn) 课程完整目录: ```shell 第一章 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](https://www.bilibili.com/video/BV1or421L75s) ## 【选修】小灶课-界面开发基础 该课程适合在学习了第一期课程之后学习,也就是适合有LVGL开发基础的时候学习。 课程专注于LVGL的界面开发基础,涉及内容:如何进行界面切换、如何实现多个界面、如何管理多个界面的代码等方面。学习之后能帮助你提升LVGL的界面开发能力。 视频教程:[https://www.bilibili.com/video/BV1SFknYQEFT](https://www.bilibili.com/video/BV1SFknYQEFT) 课程完整目录: ```shell 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](https://github.com/lvgl/lv_i18n) 的基础核心用法之后,进而探讨在多界面环境中实现国际化。学习之后能帮助你实现自己的LVGL国际化项目。 视频教程:[https://www.bilibili.com/video/BV1ZTkyYNEa4](https://www.bilibili.com/video/BV1ZTkyYNEa4) 课程完整目录: ```shell 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/c/13-category/13](https://forums.100ask.net/c/13-category/13) - QQ技术交流群(如群满,请加qq:401684796 验证备注:LVGL): - ①群: 724353371 - ②群: 860278210 - ③群: 774083288 - ④群:962138234 - 微信交流群:添加微信: baiwenkeji_fae 验证备注:LVGL # 联系我们(About us) - 百问网官网:[http://www.100ask.net](http://www.100ask.net) - 百问网官方wiki:[http://wiki.100ask.org](http://wiki.100ask.org) - 百问网官方论坛:[http://bbs.100ask.net](http://bbs.100ask.net) - 微信公众号:百问科技 - B站:[https://space.bilibili.com/275908810](https://space.bilibili.com/275908810) - CSDN:[https://edu.csdn.net/lecturer/90](https://edu.csdn.net/lecturer/90) - 知乎:[https://www.zhihu.com/people/www.100ask/](https://www.zhihu.com/people/www.100ask/) - 微博:[https://weibo.com/888wds?topnav=1&wvr=6](https://weibo.com/888wds?topnav=1&wvr=6) - 电子发烧友学院:[http://t.elecfans.com/teacher/3.html](http://t.elecfans.com/teacher/3.html) 微信公众号( baiwenkeji ) | [`视频教程在线学习平台`](http://www.100ask.net) ![微信公众号( baiwenkeji )](http://photos.100ask.net/ELADCMSecond/aboutus/followus.png) 公司名称:深圳百问网科技有限公司 - 电话: 0755-86200561 - 淘宝: [https://100ask.taobao.com](https://100ask.taobao.com) - 技术支持邮箱: weidongshan@qq.com - 地 址: 广东省深圳市龙岗区布吉南湾街道平吉大道建昇大厦B1508 - 邮 编: 518114