![](https://img-blog.csdnimg.cn/20210810105409915.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
LVGL学习笔记
文章平均质量分 67
根据正点原子的教程,学习使用littleVGL,个人记录如下,以后在使用中遇到的问题也会总结在此
未来可期wrs
代码格式强迫症,单片机-物联网-嵌入式-FreeRTOS-littleVGL-linux
以后还要学 ESP32 - emWIN - lwip - C++ QT - 硬件电路设计 - Fusion360 。。。任重而道远呐
千里之行-始于足下
展开
-
LVGL8.1笔记3--运行demo(2022-0611)
运行LVGL的官方demo原创 2022-06-13 22:25:04 · 12661 阅读 · 7 评论 -
LVGL8.1笔记2–触摸移植(2022-0603)
LVGL8.1笔记2--触摸移植(2022-0603)原创 2022-06-04 16:51:52 · 7545 阅读 · 16 评论 -
LVGL8.1笔记1--显示移植(2022-0515)
参考了LVGL的官方文档、很多的CSDN上的文章、正点原子的LVGL文档等 总结出来的比较详细的移植说明原创 2022-05-15 20:11:21 · 8856 阅读 · 9 评论 -
LVGL笔记20–lv_btnm矩阵按钮
LVGL笔记20–lv_btnm矩阵按钮 v_btnm 矩阵按钮对象你可以看作是一系列伪按钮的集合,只不过它是以行和列有序的方式来排列这些子按钮,名称中的 m 就是 matrix(矩阵)的缩写,注意了,我这里故意加了一个伪字来说明它不是真正的 lv_btn 按钮对象,而是 lv_btnm 内部纯绘制出来的具有按钮外观的图形,而且这个图形具有和 lv_btn 按钮一样的点击效果,这种伪按钮的好处是它基本不占内存消耗(一个伪按钮大概需要 8 个字节),这属于littleVGL 的一种优化操作,所以如果你有原创 2021-02-16 22:13:57 · 2313 阅读 · 2 评论 -
LVGL笔记19–lv_sw开关
LVGL笔记19–lv_sw开关lv_sw开关本质是一个缩小版的lv_slider滑块控件,lv_sw控件具有开和关两种状态;点击这个开关控件滑动这个开关控件,它会根据滑动的位置来自动决定状态的。使用lv_sw_on(sw, LV_ANIM_ON/OFF), lv_sw_off(sw, LV_ANIM_ON/OFF), lv_sw_toggle(sw, LV_ANOM_ON/OFF)等 API 接口来改变其状态当 其 状 态 发 生 改 变 后 , 它会给它的事件回调函数发送一个原创 2021-02-16 17:36:16 · 936 阅读 · 0 评论 -
LVGL笔记18–lv_slider滑块
LVGL笔记18–lv_slider滑块lv_slider滑块是由lv_bar进度条对象外加一个类似于旋钮的东西构成的,这个旋钮可以是被拖拽来设置lv_slider滑块的值,和lv_bar进度条一样。lv_slider可以是被设置成是水平滑块或者是垂直滑块,lv_bar对象上的大部分特性在lv_slider对象上基本都能找到,比如设置进度值、动画时间、设置最大最小范围等,API函数的使用方法也基本是一模一样。当滑块上被点击或者滑块上的旋钮被拖拽导致其值发生变化时,会给对应的回调函数发送一个LV_EV原创 2021-02-16 16:26:16 · 2762 阅读 · 0 评论 -
LVGL笔记17–lv_line线条
LVGL笔记17–lv_line线条lv_line 线条简单来说是由多个点连接而成的对象,它可以通过 lv_obj_set_size 接口来设置固定的大小,也可以通过 lv_line_set_auto_size(line,true)接口来设置线条对象的大小自适应,它会根据其内部所有点中最大的 x 和 y 坐标来算出自身的大小,默认情况下,大小自适应功能是被使能了的,对于线条对象来说,其内部的所有点坐标默认情况下都是以其左上角为参考原点的,当然了,你可以通过 lv_line_set_y_invert(li原创 2021-02-15 18:23:51 · 2384 阅读 · 3 评论 -
LVGL笔记16–lv_cb复选框
LVGL笔记16–lv_cb复选框lv_cb 复选框是由 3 部分组成的:第一部分是最外层的背景第二部分是内部左侧的小方块,这个小方块其实就是一个 lv_btn 按钮,所以这个小方块也具有 5 种状态和相应的 5 个样式第三部分是内部右侧的文本,这个文本其实就是 lv_label 标签,可以通过 lv_cb_set_text 接口来给复选框设置文本通过 lv_cb_set_checked 接口来设置复选框是否被选中,当复选框被点击时,它会发送一个 LV_EVENT_VALUE_CHANGED 事原创 2021-02-15 17:57:04 · 827 阅读 · 0 评论 -
LVGL笔记15–lv_bar进度条
LVGL笔记15–lv_bar进度条lv_bar 进度条它由背景和指示器俩部分构成,这俩部分的样式都可以被单独设置,然后此进度条会根据它的宽和高的大小来自动决定它是水平进度条还是垂直进度条,可以通过lv_bar_set_range 接口来设置进度条的数值范围,通过 lv_bar_set_value 接口来设置一个新的进度值,与此同时可选一个进度变化的动画效果。默认的进度条样式比较一般,通过设置样式可以把进度条设置的美观一些。lv_bar进度条主要数据类型enum { LV_BAR_STYL原创 2021-02-15 17:05:08 · 1863 阅读 · 0 评论 -
LVGL笔记14–lv_arc弧形
LVGL笔记14–lv_arc弧形v_arc 是一个用来绘制弧形的控件,和 lv_led 控件一样,非常的简单,通过样式中的line 字段来修改弧形的外观。可以用来做进度条,显示一些事件的进度。设置起始角度和终止角度两个参数,设置width和height值可以间接的设置出弧形的半径(r = width/2),lv_arc样式my_style.line.color : 用来设置弧形的颜色my_style.line.width : 用来设置弧线的厚度my_style.line.rounded原创 2021-02-14 18:18:30 · 2226 阅读 · 0 评论 -
LVGL笔记13–lv_led指示灯
LVGL笔记13–lv_led指示灯LV_LED控件就是一个简单的指示灯,在屏幕上绘制一个LED灯样式的图形,这个外形可以通过LV_style来修改,通常设置为圆形或小矩形,led灯控件具有0–255级的可调亮度属性,设置为0时代表最暗,设置为255时代表最亮,基于此亮度属性又分为OFF和ON两种状态的概念,不过设置OFF时亮度值不是0合适100,设置为ON时,亮度值是255API函数接口创建LED对象/*------------------------------------------原创 2021-02-14 17:06:27 · 1231 阅读 · 0 评论 -
LVGL笔记12--event事件
LVGL笔记11–lv_btn按钮在 littleVGL 中任何对象都可以注册事件,这是在新版本中才加入的特性,分为通用事件和专用事件,总共支持 20 种事件类型,这是一个总和哈,并不是指每一个对象都具有 20 种事件类型,事件可以是由 littleVGL 库自身触发的,也可以是由外部物理操作触发的,比如触摸,点击等等,当然了,我们也可以通过调用 lv_event_send 接口来手动发送事件进行触发,同时可以携带用户自定义的数据.Events的API接口主要数据类型事件数据类型enum原创 2021-02-14 16:37:37 · 5267 阅读 · 1 评论 -
LVGL笔记11--lv_btn按钮
LVGL笔记11–lv_btn按钮lv_btn是非常常用的控件,除了能显示文本,主要用途是用来和用户交互,实际上lv_btn按钮就是lv_cont容器的复杂变体,另外加上可选的子对象(最常用的是lv_label标签)共同构成了按钮控件按钮状态lv_btn按钮有五种状态:**LV_BTN_STATE_REL:**按钮的正常释放状态LV_BTN_STATE_PR: 按钮的正常按下状态LV_BTN_STATE_TGL_REL: 按钮的切换(Toggle)释放状LV_BTN_STATE_TG原创 2021-02-08 22:46:21 · 4043 阅读 · 0 评论 -
LVGL笔记10--lv_cont容器
LVGL笔记10–lv_cont容器简介:所谓的容器就是一个载体,用来装东西的,在 littleVGL 中,可以用来存放各种各样的子对象,当子对象的数量越来越多时,子对象们在父容器中的排列方式就显得尤为重要,因此lv_cont 容器就有一个专门的 Layout 布局属性来约束子对象们的摆放,layout 布局间隙是由样式来控制的,具体表现style.body.padding 样式属性上,lv_cont 容器除了 layout 这个重要特性外,还有一个 Auto fit 大小自动适应的特性.只要弄懂了原创 2021-02-08 20:53:29 · 2240 阅读 · 0 评论 -
LVGL笔记9--lv_font字体
LVGL笔记9–lv_font字体LV_font简介 LVGL支持的字体有很多,而且有很好的抗锯齿特性,常用的是1bpp\2bpp\4bpp,旧版本最高支持8bpp抗锯齿,但是在新版本已经不在支持了,选择的bpp值越大,消耗的flash资源越多,通常使用4bpp就能达到非常好的显示效果,使用1bpp表示不进行抗锯齿,bpp值在生成字体时就要选择好,在使用中应根据硬件平台实际性能进行选择。littleVGL支持UTF-8编码,可以实现全球所有的字符显示,而且还支持“图标字体”。LVGL支持的编码原创 2021-02-08 20:36:12 · 8197 阅读 · 0 评论 -
LVGL笔记8--lv_style样式
LVGL笔记8–lv_style样式样式介绍样式是用来修饰UI美观性,使用lv_style对UI界面进行重绘和重用,利用多个不同的样式来形成Theme对象。对于vl_obj基础对象而言,每个对象都有一个lv_style样式,但对于其他的控件(比如lv_btn按钮控件)可能拥有多个样式,因为一个稍微复杂的控件可能是由多个子部件组成,而每一个子部件可能都需要相应的样式来修饰,所以表面上看来这个控件拥有了多个样式。样式结构图主要数据类型边框部件数据类型//用于描述到底绘制哪几条边框,这些值可原创 2021-02-03 17:44:33 · 6117 阅读 · 1 评论 -
LVGL笔记7--lv_label标签控件
LVGL笔记7–lv_label标签控件标签控件介绍 lv_label标签控件是LVGL中使用最频繁的控件,主要是用来显示文本信息的,可在程序运行中动态修改文本内容,支持换行显示、图标字体、部分文本重绘色、长文本显示、6种显示模式等功能lv_label控件的API接口长文本模式数据类型enum { LV_LABEL_LONG_EXPAND, LV_LABEL_LONG_BREAK, LV_LABEL_LONG_DOT, LV_LABEL_LONG_SRO原创 2021-02-01 20:01:32 · 8321 阅读 · 3 评论