lv_micropython for ESP32-C3

一、开发平台说明

硬件:立创·实战派ESP32-C3开发板。处理器ESP32-C3(内置400KB SRAM),无内置FLASH,2.0寸液晶(液晶驱动IC:ST7789,触屏驱动IC:FT6336),下载口UART0。

ESP32-C3 MicroPython固件:MicroPython - Python for microcontrollers,这是官方编译的,可以直接用。

开发工具:在windows系统上安装了VMware虚拟机,在VMware虚拟机中安装了ubuntu18系统。

二、编译ESP32-C3 + LVGL

        上一篇博客讲了如何下载及编译lv_micropython,编译ESP32-C3+LVGL还需要下载ESP-IDF,当前最新版是v5.2.0,但是MicroPython最大支持到**v4.4** ,所以下载esp-idf v4.4。lv_micropython/ports/esp32的README.md有相关说明,如下:

说明文档:micropython/ports/esp32/README.md at master · micropython/micropython · GitHub

1、下载ESP-IDF

 进入ubuntu系统,启动终端,cd到存放源码的目录。

克隆esp-idf v4.4:

git clone -b v4.4 https://github.com/espressif/esp-idf.git

更新其子模块: 

$ cd esp-idf
$ git submodule update --init --recursive
2、编译固件

安装编译工具、配置环境变量 :

$ ./install.sh all

会在$HOME路径下创建.espressif文件夹存放工具,这个过程大约需要十分钟。install.sh只需要执行一次。执行成功会出现如下提示:

如果提示permit相关的问题,则在指令前加上sudo;如果提示pip相关的问题,请看“遇到问题章节”问题1。

导入编译相关的环境变量:

$ source export.sh

 设置IDF_TARGET:

export IDF_TARGET=esp32c3

设置目标芯片为esp32c3。 

每次打开命令窗口都需要执行一次 source export.sh。执行成功会出现如下提示:

从esp-idf目录离开,进入lv_micropython目录:

$ cd ..
$ cd lv_micropython

我把esp-idf和lv_micropython下载到同一个路径的。

编译mpy-cross: 

make -C mpy-cross

如果之前编译过mpy-cross,就不用再编译了。 

编译 esp-idf和lv_micropython:

$ make -C ports/esp32 submodules
$ make -C ports/esp32 LV_CFLAGS="-DLV_COLOR_DEPTH=16" BOARD=GENERIC_C3

如果提示更高版本的cmake,请看“遇到问题章节”问题2。 

三、遇到问题

问题1

执行sudo ./install.sh all命令时,出现以下错误提示:

意思是没有找到pip,但是通过pip -V指令能查询已安装pip。

在网上一番搜索后,有网友之前也遇到了这个问题,并提供了解决办法。如下所述:

解决方法:

进入~/.espressif/python_env/idf5.2_py3.8_env/lib/python3.8/site-packages目录,下载pip,安装pip:

$ cd ~/.espressif/python_env/idf5.2_py3.8_env/lib/python3.8/site-packages
$ sudo curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ sudo ~/.espressif/python_env/idf5.2_py3.8_env/bin/python3 get-pip.py 

然后再次执行sudo ./install.sh all就可以了。

问题2

执行make -C ports/esp32 LV_CFLAGS="-DLV_COLOR_DEPTH=16" BOARD=GENERIC_C3命令时,出现以下错误提示:

解决方法:

进入~/Downloads,下载当前最新的cmake-3.29.2.tar.gz:

$ cd cd ~/Downloads/
$ wget https://cmake.org/files/LatestRelease/cmake-3.29.2.tar.gz

解压到当前目录:

$ tar -xvzf cmake-3.29.2.tar.gz

解压之后此路径下会有一个cmake-3.29.2文件夹。

进入到cmake目录:

$ cd cmake-3.29.2/

配置:

$ chmod 777 ./configure
./configure

编译:

make

安装:

sudo make install

 执行过程如下:

将cmake安装到/usr/local/bin目录下。

将cmake链接到cmake3.29:

$ sudo update-alternatives --install /usr/bin/cmake cmake /usr/local/bin/cmake 1 --force

 查询cmake版本:

$ cmake --version
cmake version 3.29.2

至此,cmake已升级到3.29.2。

问题3

编译 esp-idf和lv_micropython时,出现以下错误提示:

esp-idf与mycropython版本不匹配。

解决方案:

将esp-idf版本切换到v4.4:

$ cd esp-idf
$ git checkout v4.4
$ git submodule update --init --recursive

 删除~/.espressif:

rm -rf $HOME/.espressif

重新安装工具:

$ ./install.sh all

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

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

相关文章

Windows完全卸载MySQL后再下载安装(附安装包)

目录 友情提醒第一章:如何完全卸载干净mysql教程(三个步骤完全卸载)1)步骤一:卸载程序2)步骤二:删除文件3)步骤三:删除注册表信息 第二章:下载软件两种方式1&…

centos7上docker搭建vulhub靶场

1 vulhub靶场概述 VulHub是一个在线靶场平台,提供了丰富的漏洞环境供安全爱好者学习和实践。 该平台主要面向网络安全初学者和进阶者,通过模拟真实的漏洞环境,帮助用户深入了解漏洞的成因、利用方式以及防范措施。 此外,VulHub还…

【AR】使用深度API实现虚实遮挡

遮挡效果 本段描述摘自 https://developers.google.cn/ar/develop/depth 遮挡是深度API的应用之一。 遮挡(即准确渲染虚拟物体在现实物体后面)对于沉浸式 AR 体验至关重要。 参考下图,假设场景中有一个Andy,用户可能需要放置在包含…

Springboot+Vue项目-基于Java+MySQL的房产销售系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

MySQL的基础操作(二)

目录 一.数据库约束 1.主键约束 (Primary Key) 2.唯一约束 (Unique) 3.外键约束 (Foreign Key): 4.检查约束(Check) 5.默认约束 (Default) 二.聚合查询 1.简单聚合函数 2.GROUP BY子句 3.HAVING子句 三.联合查询 1.内连接 2.左连接 3.右连接 4.子查询 5.合并查询…

功能测试_验证某城市电话号码的正确性

案例:验证某城市电话号码的正确性 功能测试_等价类设计用例: 步骤: 1:明确需求:电话号码是否正确 2:划分等价类:有效等价类、有效取值、无效等价类、无效取值 3:提取数据编写用例:用例编号…

运营商名称 是如何显示到 手机通知栏上的?

在我们日常使用手机的过程中,经常会在通知栏或设置菜单中看到特定的运营商名称,例如"中国移动"、"中国联通"或"中国电信"等。 那么,这些运营商的名称是如何出现在我们手机上的呢?手机又是如何区分不…

npm 切换成淘宝源,以及遇到npm 报错如何解决

淘宝源:npm config set registryhttps://registry.npmmirror.com/ 然后再npm下 package-lock.json这个删了 npm i再试一下

解决npm run dev跑项目,发现node版本不匹配,怎么跑起来?【已解决】

首先问题点就是我们npm run dev 运行项目的时候发现出错,跑不起来,类型下面这种 这里的出错的原因在于我们的node版本跟项目的版本不匹配 解决办法 我这里的问题是我的版本是node14的,然后项目需要node20的,执行下面的就可以正…

Day:007(1) | Python爬虫:高效数据抓取的编程技术(scrapy框架使用)

Scrapy的介绍 Scrapy 是一个用于抓取网站和提取结构化数据的应用程序框架,可用于各种有用的应用程序,如数据挖掘、信息处理或历史存档。 尽管 Scrapy 最初是为网络抓取而设计的,但它也可用于使用API提取数据或用作通用网络爬虫。 Scrapy的优势…

c语言例题,求数组中最大值,99乘法口诀表

例题1:求出数组中最大的值 根据题意,我们知道的是需要从一个数组中找到一个最大的元素并且输出。那首先我们先建立一个数组,然后将一些不有序的整型元素放到数组中,然后再建立一个变量来存放数组中的第一个元素,通过一…

校园通用型发生网络安全事件解决方案

已知校园多教学楼、多教学机房、非标网络机房缺乏防护设备、检测设备、安全保护软件(杀软) 切断所有外网,断网处理!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 部署路由系统可选择爱快、routeros、openwrt。等。可将日志上传到日志分析系统。《这项非必要的》 部署开源防火…

[入门到放弃]设计模式-笔记

模块化设计 20240448 模块不包含数据,通过实例的指针,实现对实例的操作;唯一包含的数据是用于管理这些模块的侵入式链表模块只负责更具定义的数据结构,执行对应的逻辑,实现不同实例的功能; 参考资料 使用…

洛谷题单 -- 图论的简单入门

B3643 图的存储 链接 : 图的存储 - 洛谷 思路 : 这一题要考察图的存储方式 , 一般可以使用邻接矩阵 或 邻接表来存储 图的结点 和1 边的信息 &#xff0c;详情请看代码 : 代码 #include<bits/stdc.h> using namespace std;const int N 1010 ; int n , m ; int …

STM32F407+DHT11采集数据

1、DHT11简介 DHT11 与单片机之间能采用简单的单总线进行通信&#xff0c;仅仅需要一个 I/O 口。传感器内部湿度和温度数据 40Bit 的数据一次性传给单片机&#xff0c;数据采用校验和方式进行校验&#xff0c;有效的保证数据传输的准确性。DHT11 功耗很低&#xff0c;5V 电源电…

零售行业数字化广告评价标准 - 《IAB/MRC零售(广告)测量指南》

IAB/MRC零售&#xff08;广告&#xff09;测量指南 --- 最新标准&#xff0c;2024年1月发布 目录 1出台此标准的目的是什么&#xff1f;2标准宗旨3本标准的主要关键领域4为什么这对品牌和零售商很重要5能给零售媒体中小型玩家带来什么机会&#xff1f;6评价零售媒体效果的最…

221 基于matlab编制的直齿圆柱齿轮应力计算程序

基于matlab编制的直齿圆柱齿轮应力计算程序&#xff0c;输入设计参数&#xff1a;模数、齿顶高、齿宽、啮合齿数、转速、扭矩、安全系数、压力角、齿轮类型&#xff08;开式、闭式&#xff09;等&#xff0c;输出弯曲应力和许用应力&#xff0c;并对比是否满足要求。并把程序成…

RestTemplate—微服务远程调用—案例解析

简介&#xff1a;总结来说&#xff0c;微服务之间的调用方式有多种&#xff0c;选择哪种方式取决于具体的业务需求、技术栈和架构设计。RESTful API和HTTP客户端是常见的选择&#xff0c;而Feign和Ribbon等辅助库可以简化调用过程。RPC和消息队列适用于特定的场景&#xff0c;如…

小剧场短剧剧集收费短剧小程序APP

1. 内容展现 付费、免费、任务解锁&#xff1a;用户可以通过付费直接观看短剧&#xff0c;也可以通过完成平台任务&#xff08;如签到、分享等&#xff09;获得免费观看的机会。这种灵活的解锁方式既满足了用户的多种需求&#xff0c;也促进了平台的活跃度。主流展现形式&…

HarmonyOS分布式应用框架深入解读

随着越来越多设备的智能化&#xff0c;在多设备场景下应用开发面临以下挑战&#xff1a;从多设备的形态差异&#xff08;不同大小、不同分辨率、不同形状的屏幕&#xff0c;多样化的交互方式–按钮、触屏、键盘、语音、手势等&#xff09;&#xff0c;多设备的能力差异&#xf…