LVGL开发:配置模拟器学习LVGL V8.3

文章目录

  • 模拟器配置
  • 常用控件学习
    • 基本知识
      • Widget
      • Events
    • 输入设备
    • Images
    • Screen
  • 参考

模拟器配置

LVGL支持多种IDE下配置模拟器:
在这里插入图片描述
在WINDOWS下面,大家最常使用的是VS2019,为了和大家保持一致,这里也使用VS2019进行配置。

  • 首先,我们clone官方配置好的LVGL VS2019模拟器仓库。
    git clone --recurse-submodules https://github.com/lvgl/lv_sim_visual_studio.git

如下:
在这里插入图片描述
我们打开sln工程:打开之后包含2个项目,我们右键,将第一个项目设置为启动项目:
在这里插入图片描述
点击启动,可以看到运行结果如下:
在这里插入图片描述
我们看到主函数如下:
在这里插入图片描述

常用控件学习

参见以下链接:LVGL官网常用控件学习

基本知识

Widget

像按钮、标签、滑块、图表等图形元素都派生于widget,LVGL有屏幕的概念,各Widget组件在创建时,需要指定父对象,子对象只在父对象区域内可见,随着父对象移动而移动、删除而删除。
通过函数lv_scr_act()获取当前屏幕,通过函数use lv_scr_load(scr1)加载屏幕。

通过函数lv_<type>_create(parent)创建Widget对象,lv_<type>_create(parent)返回值为lv_obj_t * 类型的变量,例如在当前屏幕上创建一个滑动条:

lv_obj_t * slider1 = lv_slider_create(lv_scr_act());

Widget对象有基本属性,可以通过函数lv_obj_set_<parameter_name>(obj, <value>)对基本属性进行修改,例如:

lv_obj_set_x(btn1, 30);
lv_obj_set_y(btn1, 10);
lv_obj_set_size(btn1, 200, 50);

除了每个Widget对象都有的基本属性之外,对于每个控件特有的属性,可以通过函数lv_<widget_type>_set_<parameter_name>(obj, <value>)进行设置,如:

lv_slider_set_value(slider1, 70, LV_ANIM_ON);

Events

事件用于通知用户对象发生了某些事情。可以为一个对象分配一个或多个回调函数,当对象被点击、释放、拖动、删除等操作时,这些回调函数将被调用。例如:

lv_obj_add_event(btn, btn_event_cb, LV_EVENT_CLICKED, NULL); /*Assign a callback to the button*/void btn_event_cb(lv_event_t * e)
{printf("Clicked\n");
}

输入设备

LVGL输入设备支持屏幕触摸、键盘、编码器、外部按键,创建一个输入设备过程如下:

/*Register at least one display before you register any input devices*/
lv_indev_t * indev = lv_indev_create();
lv_indev_set_type(indev, LV_INDEV_TYPE_...);   /*See below.*/
lv_indev_set_read_cb(indev, read_cb);  /*See below.*/

其中LV_INDEV_TYPE_可以为:

  • LV_INDEV_TYPE_POINTER:鼠标或触摸
  • LV_INDEV_TYPE_KEYPAD:键盘
  • LV_INDEV_TYPE_ENCODER:编码器,包含左、右和按下
  • LV_INDEV_TYPE_BUTTON:外部按键

read_cb为一个被定期调用来报告输入设备当前状态的函数指针。

Images

图像可以是一个文件,也可以是存储位图本身和一些元数据的变量。我们可以通过LVGL官网提供的在线工具将图片转换为.c文件进行储存:
https://lvgl.io/tools/imageconverter
首先我们看LVGL使用的RGB颜色格式:
在这里插入图片描述
然后打开在线转换工具,进行转换
在这里插入图片描述
在这里插入图片描述

通过以下代码可将图片进行显示:

LV_IMG_DECLARE(my_icon_dsc)
lv_obj_t * icon = lv_img_create(lv_scr_act());/*From variable*/
lv_img_set_src(icon, &my_icon_dsc);/*From file*/
lv_img_set_src(icon, "S:my_icon.bin");

Screen

  • 创建屏幕:lv_obj_t * scr1 = lv_obj_create(NULL);
  • 带动画屏幕切换:lv_scr_load
  • 带动画屏幕切换: lv_scr_load_anim

参考

LVGL官网模拟器介绍文档
LVGL官网常用控件学习
LVGL图片在线转换工具
LVGL基本概念讲解
LVGL使用编码器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/22483.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Android 13]Binder系列--获取服务

获取服务 hongxi.zhu 2023-7-8 一、客户端发起获取服务 以SurfaceFlinger进程中获取InputFlinger服务为例 frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp sp<IBinder> input(defaultServiceManager()->getService(String16("inputflinger"…

使用Pycharm

本人没有单独安装python&#xff0c;而是直接安装了anaconda 使用Pycharm创建项目 项目取名为HelloWorld&#xff0c;环境使用前面安装的anaconda pycharm安装模块的方法&#xff1a; 打开Pycharm>File > Settings>Project: Python>Project Interpreter

【大数据之Hive】二十三、HQL语法优化之数据倾斜

1 数据倾斜概述 数据倾斜指参与计算的数据分布不均&#xff0c;即某个key或者某些key的数据量远超其他key&#xff0c;导致在shuffle阶段&#xff0c;大量相同key的数据被发往同一个Reduce&#xff0c;导致该Reduce所需的时间远超其他Reduce&#xff0c;成为整个任务的瓶颈。  …

安装部署rancher2.7.0,然后导入K8S集群,管理集群

1. 安装rancher2.7.0 docker run -d --name rancher --restartunless-stopped --privileged -p 80:80 -p 443:443 -v /var/lib/rancher:/var/lib/rancher/ -v /var/log/rancher/auditlog:/var/log/auditlog rancher/rancher:v2.7.02.浏览器登录 2.1 利用默认账号登…

SOPC之NiosⅡ系统(三)

常用NIOS Ⅱ组件概括 目录 1.定时器Timer 1.1 预定义硬件配置 1.2 超时周期Timeout poriod 1.3 计数器大小Timer counter Size 1.4 寄存器Registers 2.串口UART 2.1 基础设置Basic settings 2.1.1 奇偶校验Parity 2.1.2 数据为Data bits 2.1.3 停止位Stop bits 2.1…

CANOE 操作详情

canoe 手把手教你如何操作canoe工具&#xff1a; 1&#xff1a;创建test文件夹&#xff0c; 并在文件夹下创建3 文件夹 2&#xff1a;创建canoe工程&#xff0c;选择500波特率 3: 双击后进入 4&#xff1a;创建DBC文件 5 创建网络节点&#xff1a; 两个节点创建好之后&#x…

【力扣刷题 | 第十九天】

目录 前言&#xff1a; 135. 分发糖果 - 力扣&#xff08;LeetCode&#xff09; 860. 柠檬水找零 - 力扣&#xff08;LeetCode&#xff09; 总结&#xff1a; 前言&#xff1a; 今天着重刷贪心算法的题目 135. 分发糖果 - 力扣&#xff08;LeetCode&#xff09; n 个孩子…

SQL语法与数据库快速入门(1)

目录 数据库简介数据库分类常用数据库简介使用场景MySql 的安装与配置数据库客户端工具MySql 介绍SQL 简介DDL 数据库操作-创建DDL 数据库操作-查看DDL 数据库操作-修改DDL 数据库操作-删除DDL 数据库表操作简介DDL 数据库表操作-创建DDL 数据库表操作-查看DDL 数据库表操作-修…

explain 是干嘛的

explain 是干嘛的 1.explain的作用 在MySQL中&#xff0c;EXPLAIN是一个用于查询优化的关键字。它可以用于分析查询语句的执行计划&#xff0c;帮助开发人员和数据库管理员理解查询的执行方式、查询涉及的表和索引、连接类型、查询优化器的决策等信息。 通过使用EXPLAIN关键…

【基于FPGA的芯片设计】RISC-V的20条指令CPU设计

实验板卡&#xff1a;xc7a100tlc sg324-2L&#xff0c;共20个开关 实验要求&#xff1a;

psutil库使用详解

一、背景 在Python的世界里&#xff0c;有一些库因其强大的功能和易用性而备受开发者们的喜爱。今天&#xff0c;我们要介绍的就是其中的一员——psutil库。psutil(python system and process utilities)是一个跨平台的第三方库&#xff0c;用于获取系统运行时的进程和系统利用…

【数据结构】搜索二叉树/map/set

二叉搜索树&#xff08;搜索二叉树&#xff09; 1.1.二叉搜索树概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性质的二叉树: 若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值 若它的右子树不为空&#xff0c;则…