ESP32基础应用之LVGL基础

news2024/11/24 14:50:27

文章目录

  • 1 实验目的
    • 1.1 参考文章
  • 2 实验工具
  • 3 准备工作
    • 3.1 搭建ESP32开发环境
    • 3.2 克隆lv_port_esp32工程
  • 4 配置lv_port_esp32工程
  • 5 实验验证
  • 6 使用过程遇到的问题
    • 6.1 触摸功能点击屏幕位置不对

1 实验目的

本实验为使用ESP32实现LVGL(轻量级的嵌入式图形库),主要参考LVGL官方为ESP32所做的适配工程并在GitHub发布的lv_port_esp32,并记录适配过程的采坑点
在这里插入图片描述

1.1 参考文章

  1. ESP32+st7789/ili9341运行LVGL例程,依赖ESP-IDF编译lv_port_esp32官方Demo(1)
  2. esp32-lvgl-(st7789/ILI9341)(基于esp-idf框架)
  3. LVGL project for ESP32

2 实验工具

  1. ESP32开发板是ESP32-DevKitC V4
  2. LCD是3.2inch SPI Module ILI9341

3 准备工作

本实验是参考

3.1 搭建ESP32开发环境

  1. 根据lv_port_esp32工程说明, ESP-IDF版本要求为4.2。
    在这里插入图片描述
  2. 电源问题,直接只用ESP32-DevKitC V4开发板接LCD有可能无法驱动,需要外接电源。

3.2 克隆lv_port_esp32工程

该步骤问题最多

  1. 直接使用git clone https://github.com/lvgl/lv_port_esp32.git克隆或使用官方方法git clone --recurse-submodules https://github.com/lvgl/lv_port_esp32.git 或直接下载程序包都会出现components文件夹下的子文件夹内容缺失,导致无法正常使用。这里推荐在Gitee平台搜索lv_port_esp32工程,在该平台克隆,或者components文件夹下的各个子工程单独克隆。

4 配置lv_port_esp32工程

  1. 将lv_port_esp32工程放置在esp-idf目录下
    在这里插入图片描述

  2. ESP32-DevKitC V4开发板引脚图
    在这里插入图片描述

  3. 使用idf.py menuconfig命令打开配置菜单
    在这里插入图片描述

  4. 配置LCD显示驱动引脚,注意在第2点截图中TFT SPI Bus是VSPI,则配置引脚需要对应为VSPI的引脚
    在这里插入图片描述

  5. 配置LCD触摸引脚,
    在这里插入图片描述在这里插入图片描述

  6. LCD屏幕尺寸配置和其余配置
    在这里插入图片描述

5 实验验证

最后编译并烧录程序
在这里插入图片描述

6 使用过程遇到的问题

6.1 触摸功能点击屏幕位置不对

  1. 在测试lv_demo_keypad_encoder();示例时,屏幕响应不对,例如,点击右下角,但是左上角的按键显示被按下。如下图,取消三个选项,再编译烧录则正常了
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

38、Java——汽车租赁系统(JDBC+MySQL+Apache DBUtils)

​ ✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:乐趣国学的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:Java案例…

iptables简述

netfilter iptables的底层实现是netfilter。netfilter实在Linux内核2.4版引入的子系统,作为通用框架提供一套hook函数的管理机制,使得数据包过滤、地址转换、访问控制、连接跟踪等功能得以实现。netfilter的架构就是在整个网络流程中放置了一些钩子&…

[附源码]计算机毕业设计springboot海滨学院学生大创项目申报与审批系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

大中型园区网络拓扑架构

目录 园区出口区 数据中心区 网络管理区 DMZ区 核心层 汇聚层 终端层 接入层 大中型园区网络通常采用核心层为“根”的树形网络架构,拓扑稳定,易于扩展和维护。 园区网络可划分为多个层次:接入层、汇聚层、核心层, 以及多个分区&a…

iwebsec靶场 SQL注入漏洞通关笔记9- 双写关键字绕过

系列文章目录 iwebsec靶场 SQL注入漏洞通关笔记1- 数字型注入_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记2- 字符型注入(宽字节注入)_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记3- bool注入(布尔型盲注&#…

雨水情监测及视频监控解决方案 水库雨水情自动测报系统 介绍 功能 特点

平升电子水雨情自动监测系统/雨水情监测及视频监控解决方案/水库雨水情自动测报系统辅助水利管理部门实现水库雨水情信息“全要素、全量程、全覆盖”自动测报。系统具备水库水位、雨量、现场图像/视频等水文信息采集、传输、处理及预警广播等功能,有效提升了雨水情信…

技术分享 oracle中fm的作用

SQL> select |||to_char(5,999)||| from dual; 结果为:| 5| SQL> select |||to_char(5,000)||| from dual; 结果为:| 005| 如何去除多余的空格? SQL> select |||to_char(5,fm000)||| from dual; 结果为:|005| 空格…

mysql相关基础知识篇(三)

1.一条更新sql语句怎么执行的了解吗? 更新语句的执行是 Server 层和引擎层配合完成,数据除了要写入表中,还要记录相应的日志。 执行器先找引擎获取 ID2 这一行。ID 是主键,存储引擎检索数据,找到这一行。如果 ID2 这…

工业服务被忽视的销售力量:他们的技术人员

目录 1.从销售到服务的普遍 2.从服务到销售的滞后 3.是什么阻碍了售后服务时销售行为的发生 3.如何改善这种状况 1.从销售到服务的普遍 服务销售窗口的提前在工业企业已经是非常普遍的现象,特别是在互联网经济高度发达的今天,销售的触角已经直达消费…

MySQL如何确定查询处理各个阶段所消耗的时间

使用profile set profiling1; 启动profile 这是一个session级的配置 执行查询 show profiles; 查询每一个查询所消耗的总时间信息 show profile for query N; 查询的每个阶段所耗的时间 show profile cpu for query 1; 但是每次使用都会有一个warning 使用performanc…

59 - 类模板与函数模板的深度剖析

---- 整理自狄泰软件唐佐林老师课程 1. 多参数模板 类模板可以定义 任意多个不同的 类型参数 2. 类模板可以被 特化 模板本来是一组通用逻辑的实现,但是可能存在特定的参数类型下,通用的逻辑实现不能满足要求,这时就需要针对这些特殊的类型&…

【密码学基础】RSA加密算法

1 RSA介绍 RSA是一种非对称加密算法,即加密和解密时用到的密钥不同。加密密钥是公钥,可以公开;解密密钥是私钥,必须保密保存。基于一个简单的数论事实:两个大质数相乘很容易,但想要对其乘积进行因式分解却…

IIS 部署 SSL 证书提示证书链中的一个或多个中间证书丢失

现象描述 IIS Web 服务部署免费 SSL 证书时提示 “证书链中的一个或多个中间证书丢失,要解决此问题,请确保安装了所有中间证书”。 下载中间证书文件,根据您的证书加密算法类型下载中间证书至您的云服务器中。 安装中间证书 1. 在您需要部…

Arcgis地理配准栅格数据

前提 有时候获取的不同数据没有坐标,而却有共同点,这时候需要对数据进行配准校正,数据才能最终拼接镶嵌在一起 效果 1、准备数据 2、打开地理配准工具 3、地理配准中设置待配准数据 4、添加控制点 这份数据目测很容易找到控制点 在待配准数据上先选择控制点,再在基准数…

JavaScript_BOM

JavaScript_BOM BOM:Browser Object Model 浏览器对象模型。也就是 JavaScript 将浏览器的各个组成部分封装为对象。 我们要操作浏览器的各个组成部分就可以通过操作 BOM 中的对象来实现。 BOM 中包含了如下对象: Window:浏览器窗口对象N…

JavaScript基础语法(类型转换)

JavaScript基础语法(类型转换) 使用运算符的时候会发生类型转换。 其他类型转为number string转换为 number类型:按照字符串的字面值,转为数字。如果字面值不是数字,则转为NaN 将 string转换为 number有两种方式&…

存储器管理

文章目录存储器的层次结构存储器的指标多层结构的存储器系统主存储器与寄存器高速缓存和磁盘缓存程序的装入和链接对用户程序的处理步骤程序的装入程序的链接连续分配的存储管理方式单一连续分配固定分区分配动态分区分配基于顺序搜索的动态分区分配算法基于索引搜索的动态分区…

EventLoop

1.javascript是一门单线程语言 任务1 ---> 任务2--->任务3 单线程执行任务队列的问题: 如果前一个任务非常耗时,则后面的任务不得不一直等待,从而导致程序假死问题 2.同步任务和异步任务 同步任务:js主线程直接执行 同…

沉睡者IT - 什么是Web3.0?

欢迎关注沉睡者IT,点上面关注我 ↑ ↑ 什么是Web3.0? Web3(也称为Web 3)用最简单的话来解释就是,第三代互联网。 那么有朋友要问了,那么什么是第一代,什么是第二代?第三代又有什么…

2.1 Redis中SDS的定义

每个sds.h/sdshdr 结构表示一个SDS值 struct sdshdr { //记录 buf 数组中已经使用的字节数量 //等于SDS所保存字符串的长度 int len;//记录buf数组中未使用字节的数量 int free;//字节数组,用于保存字符串 char buf[]; };图2-1 展示了一个SDS 示例: 1、free 属性值为0&#x…