ESP32-IDF移植LVGL 文件系统

news2024/11/17 17:30:15

一. 简介

在使用LVGL进行界面开发的时候,需要使用到各种字体文件和图片文件,如果直接下载到flash中的话(esp32的flash足够大,可以下载少量的资源文件),不方便替换和管理,而且资源有限,但比较方便,有优点也有缺点。
针对缺点,可以使用TF存储资源,然后使用自带的文件文件系统进行读取,但是文件系统需要自己移植一下,而esp32-idf给了很大的支持,移植起来特别特别简单,所以移植的缺点可以忽略不计。

二. TF卡初始化

在使用文件系统的时候,需要先对TF卡进行初始化,这一步直接copy官方例程(提供了SPI和SDIO两种接口),本人使用的是SDIO版本的,copy过来后,修改一下IO引脚就可以了。
在这里插入图片描述

三. LVGL文件系统移植(8.3.x)

其实LVGL官网已经给我们准备好了,同显示和输入设备的移植过程一样,fs的移植网上的教程比较少而已,去掉后面的_template,然后将#if 0 改成#if 1就可以了
在这里插入图片描述
然后看看fs的初始化函数,将我们的TF卡初始化的函数放到fs_init()函数里面,然后将letter的值修改为‘S’,然后在主函数里面调用这个函数就可以了。
在这里插入图片描述
最后就是接口对接了,将下面这些函数里面的内容实现一下就可以了,
在这里插入图片描述
例如fs_read这个函数,TFCard_Read是自己对fread进行的一个封装,fs_read调用一下TFCard_Read函数就可以了。
在这里插入图片描述
在这里插入图片描述
其它的函数同样如此,添加完之后,移植过程就结束了。

ps:

  1. 读取文件的路径: 由于例程中的节点是 #define MOUNT_POINT/sdcard"这个,所以我们在lvgl输入的路径应该为"S:/sdcard/图片路径

三. 小结

基于esp32-idf 的文件移植是非常简单的,并不需要再config中进行配置,也不需要去github上下载对应的文件。

如果对esp32 开发感兴趣的话,可以关注下方公众号哦,想获取资料的话,或者有什么疑问想进行交流,也可以在上面和我取得联系哦。

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

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

相关文章

Oracle的学习心得和知识总结(二十九)|Oracle数据库数据库回放功能之论文三翻译及学习

目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《Oracle Database SQL Language Reference》 2、参考书籍:《PostgreSQL中文手册》 3、EDB Postgres Advanced Server User Gui…

前端需要理解的工程化知识

1 Git 1.1 Git 常见工作流程 Git 有4个区域:工作区(workspace)、index(暂存区)、repository(本地仓库)和remote(远程仓库),而工作区就是指对文件发生更改的地方&#xff…

string类中的一些问题

前言:C中的string类是继承C语言的字符数组的字符串来实现的,其中包含许多C的字符串的相关知识的同时,也蕴含很多的类与对象的相关知识,在面试中,面试官总喜欢让学生自己来模拟实现string类,最主要是实现str…

DDT数据驱动测试

简单介绍 ​ DDT(Date Driver Test),所谓数据驱动测试,简单来说就是由数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变。通过使用数据驱动测试的方法,可以在需要验证多组数据测试场景中&#…

leetcode.105 从前序和中序遍历序列构造二叉树

题目描述&#xff1a; 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一 棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 题目要求&#xff1a; 1 < preorder.length < 3000inorder.length…

企业如何通过CRM来提高销售业绩?

在当今市场环境中&#xff0c;客户的需求更偏向于个性化&#xff0c;企业面对的竞争更加激烈。如何有效地获取和维护客户&#xff0c;提高收入成为了企业的核心问题。作为一种强大的销售管理工具&#xff0c;CRM如何提高销售业绩&#xff1f; 提高客户转化率&#xff1a; 企业…

基于STM32F103C8T6的HC-06蓝牙通信

文章目录 前言 注意看 &#xff01;一、蓝牙通信流程二、怎么实现蓝牙通信1.了解蓝牙模块功能2.了解蓝牙通信本质3.进行AT命令调试4.调试完成&#xff0c;连接通信 三、结尾 前言 注意看 &#xff01; 如果朋友们遇到了如下问题&#xff0c;可以仔细借鉴本文章和另一篇专门讲解…

[第七届蓝帽杯全国大学生网络安全技能大赛 蓝帽杯 2023]——Web方向部分题 详细Writeup

Web LovePHP 你真的熟悉PHP吗&#xff1f; 源码如下 <?php class Saferman{public $check True;public function __destruct(){if($this->check True){file($_GET[secret]);}}public function __wakeup(){$this->checkFalse;} } if(isset($_GET[my_secret.flag]…

性能测试流程? 怎么做性能测试?

一、前期准备 性能测试虽然是核心功能稳定后才开始压测&#xff0c;但是在需求阶段就应该参与&#xff0c;这样可以深入了解系统业务、重要功能的业务逻辑&#xff0c;为后续做准备。 二、性能需求分析&#xff08;评审&#xff09; 评审时&#xff0c;要明确性能测试范围、目…

MySQL执行更新的流程

一、加载缓存数据 引擎要执行更新语句的时候 &#xff0c;比如对“id10”这一行数据&#xff0c;他其实会先将“id10”这一行数据看看是否在缓冲池里&#xff0c;如果不在的话&#xff0c;那么会直接从磁盘里加载到缓冲池里来&#xff0c;而且接着还会对这行记录加独占锁。 二…

【项目 计网7】4.20 多进程实现并发服务器 4.22 多线程实现并发服务器

文章目录 4.20 多进程实现并发服务器server_process.cclient.c4.22 多线程实现并发服务器客户端代码&#xff1a;服务端代码&#xff1a; 4.20 多进程实现并发服务器 要实现TCP通信服务器处理并发的任务&#xff0c;使用多线程或者多进程来解决。 思路&#xff1a; 1、一个父进…

【Python】PySpark

前言 Apache Spark是用于大规模数据&#xff08;large-scala data&#xff09;处理的统一&#xff08;unified&#xff09;分析引擎。 简单来说&#xff0c;Spark是一款分布式的计算框架&#xff0c;用于调度成百上千的服务器集群&#xff0c;计算TB、PB乃至EB级别的海量数据…

ADC芯片CS1238,CS1237介绍和代码

一.芯片介绍 CS1238是一款高精度、低功耗 模数转换芯片&#xff0c;两路差分输入通道&#xff0c;内置温度传感器和高精度振荡器。MCU可以通过2线的SPI 接口SCLK、DRDY与CS1237进行通信&#xff0c;对其进行配置&#xff0c;例如通道选择、PGA选择、输出速率选择等。下面是CS1…

9. 解谜游戏

目录 题目 Description Input Notes 思路 暴力方法 递归法 注意事项 C代码&#xff08;递归法&#xff09; 关于DFS 题目 Description 小张是一个密室逃脱爱好者&#xff0c;在密室逃脱的游戏中&#xff0c;你需要解开一系列谜题最终拿到出门的密码。现在小张需要打…

解决CMake报“Compatible with CMake < 2.8.12 will be removed“问题

今天在使用CMake编译zlib开源库时&#xff0c;弹出编译警告"Compatibility with CMake < 2.8.12 will be removed from a future "&#xff0c;如图(1)所示&#xff1a; 图(1) CMake报版本太低错误 将CMakeList.txt里的cmake版本调高 出现该问题的原因是&#xff…

2023.08.27 学习周报

文章目录 摘要文献阅读1.题目2.重点3.引言4.方法5.实验结果6.结论 深度学习Majorization-Minimization算法1.基本思想2.要求3.示意图 总结 摘要 This week, I read a computer science on the prediction of atmospheric pollutants in urban environments based on coupled d…

PostgreSQL命令行工具psql常用命令

1. 概述 通常情况下操作数据库使用图形化客户端工具&#xff0c;在实际工作中&#xff0c;生产环境是不允许直接连接数据库主机&#xff0c;只能在跳板机上登录到Linux服务器才能连接数据库服务器&#xff0c;此时就需要使用到命令行工具。psql是PostgreSQL中的一个命令行交互…

达梦数据库修改超级管理员密码

ENABLE_LOCAL_OSAUTH0 开启认证 ENABLE_LOCAL_OSAUTH1不认证、免密登陆 谨慎操作 目录 修改账户密码 锁定解锁账户 登录成功 修改账户密码 alter user SYSDBA IDENTIFIED by "Passw0rd!!"; 锁定解锁账户 ALTER USER 用户名 ACCOUNT UNLOCK; 问题分析&#xff1a…

SD 总线引脚介绍

参考 https://www.cnblogs.com/justin-y-lin/p/12259851.html SD卡与TF卡的引脚定义 - 360文档中心