ESP32 IDF linux下开发环境搭建
文章目录
- 介绍
- 升级Python环境
- 下载Python包
- 配置编译环境及安装Python
- 设置环境变量
- ESPIDF环境搭建
- 下载esp-idf 代码
- 编译等待下载
- 烧录成功
- 查看串口打印
介绍
esp32 官方文档给的不是特别详细 参考多方资料 最后才完成开发 主要问题在于github下载的很慢本教程适用于ubuntu deban系统 centos系统可以参考本教程开发
参考资料
开始是升级的Python环境,自己安装的时候可以先跳过这一步,直接到第二步安装IDF的步骤,如果提示Python环境不支持,再进行第一步
升级Python环境
我的linux环境是Deepin环境,自带的python3版本是3.7 之前曾尝试过装过ESP32的开发环境,但是因为Python3的版本太低不支持,所以搜索了教程升级更高Python3的版本。本次安装的新版本是Python3.10 最好是两者共存,如果替换掉本地的默认的Python3.7的话 自带的一些软件 如deepin的桌面可能会出错,所以本次使用兼容安装
下载Python包
下载链接:https://www.python.org/ftp/python/3.10.12/Python-3.10.12.tgz
如果网速比较慢的话,可以直接从CSDN下载,提供多种版本的python包
CSDN链接:https://download.csdn.net/download/ciqujinnian_/88741069?spm=1001.2014.3001.5503
大家帮忙CSDN下载一下 挣点积分
配置编译环境及安装Python
- 解压代码 并进入目录
tar -xzvf Python-3.10.12.tgz
cd Python-3.10.12/
- 配置环境信息
如果这一步提示缺少环境依赖的话根据所缺少的使用apt安装
./configure --prefix=/opt/apps/python3.10 --enable-optimizations
在这里–prefix=/opt/apps/python3.10 是我们在编译完成后 执行make install命令时编译好的Python3.10的库和命令所安装的位置 这里我选择/opt/app/ 目录下 大家根据自己需要更改
等待配置编译环境 配置完成后会生成Makefile
- 编译代码
make -j6
等待编译完成
- 安装Python环境
sudo make install
因为前面指定的目录是在/opt目录下 所以需要加sudo 要不然没有权限 等待安装完成,我们可以看到 该目录下已经有Python/3.10的信息了
设置环境变量
上一步安装好的python还不能直接用,需要将其配置为环境变量
- 创建软连接
sudo ln -s /opt/apps/python3.10/bin/python3.10 /usr/bin
sudo ln -s /opt/apps/python3.10/bin/python3.10-config /usr/bin
# 设置环境变量
PATH="$PATH:/opt/apps/python3.10/bin"
- 检查效果
当然也可以用软连接 将Python3指向Python3.10 不过后续会不会导致基本的环境问题还不清楚
ESPIDF环境搭建
参考资料:https://blog.csdn.net/karaxiaoyu/article/details/122613328
下载esp-idf 代码
- 安装依赖
Ubuntu deban 用户
sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
- 下载代码
由于esp32的代码在github上 国内网不是特别好 下载子模块的时候会出错 所以按照下面的方法使用国内的gitee下载esp32的代码
- 下载git tool工具
git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git
下载 esp-idf代码 不包括子模块
git clone https://gitee.com/EspressifSystems/esp-idf.git -b release/v5.0
- 下载子模块
cd esp-gitee-tools
export TOOL_PATH=$(pwd)
cd ..
cd esp-idf
$TOOL_PATH/submodule-update.sh
等待完成
- 配置esp-idf
进入esp-idf的环境执行下面语句
#安装编译工具链
$TOOL_PATH/install.sh
等待完成 会让你执行配置环境变量的语句
执行
. ./export.sh
等待执行完成会让我们 进入工程文件 可以开始编译了
编译等待下载
烧录成功
查看串口打印
相关文章:

ESP32 IDF linux下开发环境搭建
文章目录 介绍升级Python环境下载Python包配置编译环境及安装Python设置环境变量 ESPIDF环境搭建下载esp-idf 代码编译等待下载烧录成功查看串口打印 介绍 esp32 官方文档给的不是特别详细 参考多方资料 最后才完成开发 主要问题在于github下载的很慢本教程适用于ubuntu deban…...

光伏电站智能管理平台功能全面介绍
一、介绍 光伏电站智能管理平台专门为了光伏电站服务的融合了项目沟通、在线设计、施工管理、运维工单等多智能光伏管理系统,可以满足光伏电站建设前期沟通、中期建设和后续维护的一体化智能平台,同时通过组织架构对企业员工进行线上管理和数据同步&…...

SSL证书 购买流程
在购买SSL证书之前,需要知道一点相关的知识,通常包括以下几个环节: 一、确定需求 1、根据需要保护的域名数量,在以下三类中选择合适的证书类型: 单域名证书,只对一个域名(例如abc.com&#x…...

C++|二叉搜索树
一、二叉搜索树的概念 二叉搜索树又称为二叉排序树,它或者是一颗空树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根结…...

网页html版面分析-- BeauifulSoup(python 文档解析提取)
介绍 BeauifulSoup 是一个可以从HTML或XML 文件中提取数据的python库;它能通过转换器实现惯用的文档导航、查找、修改文档的方式。 BeauifulSoup是一个基于re开发的解析库,可以提供一些强大的解析功能;使用BeauifulSoup 能够提高提取数据的效…...

第五十八节 Java设计模式 - 适配器模式
Java设计模式 - 适配器模式 我们在现实生活中使用适配器很多。例如,我们使用存储卡适配器连接存储卡和计算机,因为计算机仅支持一种类型的存储卡,并且我们的卡与计算机不兼容。 适配器是两个不兼容实体之间的转换器。适配器模式是一种结构模…...

程序员的归宿。。
大家好,我是瑶琴呀。 相信每个进入职场的人都考虑过自己的职业生涯规划,在不同的年龄段可能面临不同挑战,这点对于 35 的人应该更为感同身受。 对于程序员来说,大部分人的职业道路主要是下面三种:第一条,…...

ROS服务器通信
目录 一、角色 二、流程 注意 三、例子描述 四、srv文件 编译配置文件 vscode配置 五、Server.cpp编写例子 编写CMakeList 六、观察server的效果 七、Client编写例子 编写CMakeList 八、观察Client的结果 九、Client优化(动态输入) 了解argc…...

双向带头循环链表(图解)
文章目录 头节点(哨兵位)双向循环结构头插尾插头删尾删在指定位置之前插入数据删除指定位置之前的数据销毁链表 全部代码结语 单链表地址 头节点(哨兵位) 什么是头节点呢?头节点也叫哨兵节点,他在链表中进行不了任何操作,只是用来放哨用的,在单链表中我们当我们尾插的时候我们…...

富文本编辑器 iOS
https://gitee.com/klkxxy/WGEditor-mobile#wgeditor-mobile 采用iOS系统浏览器做的一款富文本编辑器工具。 原理就是使用WKWebView加载一个本地的一个html文件,从而达到编辑器功能的效果! 由于浏览器的一些特性等,富文本编辑器手机端很难做…...
【OceanBase诊断调优】—— checksum error ret=-4103 问题排查
适用版本 OceanBase 数据库所有版本。 什么是 checksum data checksum:一个 SSTable 中所有宏块内存二进制计算出来的 checksum 值。反映了宏块中的数据和数据分布情况。如果宏块中数据一致但是数据分布不一致,计算出来的 checksum 也不相等。 column…...

融合Transformer与CNN,实现各任务性能巅峰,可训练参数减少80%
论文er看过来,今天给各位推荐一个热门创新方向:CNNTransformer。 众所周知,CNN通过多层卷积自动学习空间层级特征,能够有效提取图像局部特征。而Transformer通过自注意力机制全局建模,能够有效处理长距离依赖关系。 …...

K8s 多租户管理
一、K8s 多租户管理 多租户是指在同一集群中隔离多个用户或团队,以避免他们之间的资源冲突和误操作。在K8s中,多租户管理的核心目标是在保证安全性的同时,提高资源利用率和运营效率。 在K8s中,该操作可以通过命名空间࿰…...
Java面试题:Synchronized和Lock的对比
Synchronized和Lock对比 语法层面 Synchronized是关键字,源码在jvm中,用c语言实现 使用时,退出同步代码块时会自动释放 Lock是接口,源码由jdk提供,用java语言实现 使用时,需要手动调用unlock方法进行释放 功能层面 都属于悲观锁,具备基本的互斥,同步,锁重入功能 但Lock…...

VPN方案和特点
VPN方案和特点 VPN,或者称为虚拟专用网络,是一种保护你的在线安全和隐私的技术。它可以创建一个加密的连接,使你的在线活动对其他人不可见。以下是一些常见的VPN协议和它们的特点: 开放VPN (OpenVPN):这是一种极为可…...

力扣HOT100 - 84. 柱状图中最大的矩形
解题思路: 单调栈 对于一个高度height[ i ],找左右两边均严格小于它的值。 class Solution {public int largestRectangleArea(int[] heights) {int n heights.length;int[] left new int[n];int[] right new int[n];Deque<Integer> mono_st…...

【吃透Java手写】3-SpringBoot-简易版-源码解析
【吃透Java手写】SpringBoot-简易版-源码解析 1 SpringbootDemo2 准备工作2.1 Springboot-my2.1.1 依赖2.1.2 SpringBootApplication2.1.3 SJBSpringApplication2.1.3.1 run方法 2.2 Springboot-user2.2.1 依赖2.2.2 UserController2.2.3 UserApplication 2.3 分析run方法的逻辑…...

maven mirrorOf的作用
在工作中遇到了一个问题导致依赖下载不了,最后发现是mirror的问题,决定好好去看一下mirror的配置,以及mirrorOf的作用,以前都是直接复制过来使用,看了之后才明白什么意思。 过程 如果你设置了镜像,镜像会匹…...

Centos7 安装 MySQL5.7 使用 RPM 方式
1 访问网站 https://downloads.mysql.com/archives/community/ 选择合适的版本,点击 Download。 2 上传下载好的 mysql-5.7.44-1.el7.x86_64.rpm-bundle.tar 文件到 Centos7 机器,这里放到了 下载 目录。 3 解压 mysql-5.7.44-1.el7.x86_64.rpm-bundle.…...
代码随想录算法训练营day21 | 513.找树左下角的值、112. 路径总和、106.从中序与后序遍历序列构造二叉树
513.找树左下角的值 迭代法比较简单,层序遍历,找到最下面一层的第一个节点。题目已经说明节点数>1了 class Solution:def findBottomLeftValue(self, root: Optional[TreeNode]) -> int:queue collections.deque()queue.append(root)result ro…...

Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...

基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...

C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...

九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...