ESP32 IDF linux下开发环境搭建

news2024/11/24 10:56:23

文章目录

  • 介绍
    • 升级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的桌面可能会出错,所以本次使用兼容安装
image.png

下载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下载一下 挣点积分
image.png

配置编译环境及安装Python

  • 解压代码 并进入目录
tar -xzvf Python-3.10.12.tgz
cd Python-3.10.12/

image.png

  • 配置环境信息

如果这一步提示缺少环境依赖的话根据所缺少的使用apt安装

./configure --prefix=/opt/apps/python3.10 --enable-optimizations

在这里–prefix=/opt/apps/python3.10 是我们在编译完成后 执行make install命令时编译好的Python3.10的库和命令所安装的位置 这里我选择/opt/app/ 目录下 大家根据自己需要更改
等待配置编译环境 配置完成后会生成Makefile
image.png

  • 编译代码
make -j6

等待编译完成
image.png

  • 安装Python环境
sudo make install

因为前面指定的目录是在/opt目录下 所以需要加sudo 要不然没有权限 等待安装完成,我们可以看到 该目录下已经有Python/3.10的信息了
image.png

设置环境变量

上一步安装好的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"

image.png

  • 检查效果

image.png
当然也可以用软连接 将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

image.png
下载 esp-idf代码 不包括子模块

git clone https://gitee.com/EspressifSystems/esp-idf.git -b release/v5.0

image.png

  • 下载子模块
cd esp-gitee-tools
export TOOL_PATH=$(pwd)
cd ..
cd esp-idf
$TOOL_PATH/submodule-update.sh

等待完成
image.png

  • 配置esp-idf

进入esp-idf的环境执行下面语句

#安装编译工具链
$TOOL_PATH/install.sh

等待完成 会让你执行配置环境变量的语句
image.png
执行

. ./export.sh

image.png
等待执行完成会让我们 进入工程文件 可以开始编译了

编译等待下载

image.png

烧录成功

image.png

查看串口打印

image.png

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

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

相关文章

华为eNSP中型企业局域网网络规划设计(下)

→b站传送门,感谢大佬← →华为eNSP中型企业局域网网络规划设计(上)← →拓扑图传送门,可以自己配置着玩← 配置ospf AR3 [AR3]ospf 1 router-id 3.3.3.3 //出口默认路由 [AR3-ospf-1]default-route-advertise always #area…

2024上半年软考新规,对高级论文科目不太友好

辽宁省发布了《关于2024年上半年计算机技术与软件专业技术资格(水平)考试批次安排的通知》,通知原文如下: 添加图片注释,不超过 140 字(可选) 添加图片注释,不超过 140 字(可选) 1.…

C 语言文件输入/输出(I/O)函数大全

C 语言文件输入/输出(I/O)函数大全 1. fopen() 函数2. fclose() 函数3. fread() 函数4. fwrite() 函数5. fseek() 函数6. ftell() 函数7. rewind() 函数8. feof() 函数9. ferror() 函数10. clearerr() 函数 😊 C 语言文件输入/输出&#xf…

SparkSQL与Hive整合 、SparkSQL函数操作

SparkSQL与Hive整合 SparkSQL和Hive的整合,是一种比较常见的关联处理方式,SparkSQL加载Hive中的数据进行业务处理,同时将计算结果落地回Hive中。 整合需要注意的地方 1)需要引入hive的hive-site.xml,添加classpath目录下面即可…

国家信息安全水平等级考试NISP一级题目(包含答案)

国家信息安全水平等级考试NISP一级题目 有任何想要咨询NISP都可以私信博主 1. 下列关于用户口令说法错误的是( )。 A.口令不能设置为空 B.口令长度越长,安全性越高 C.复杂口令安全性足够高,不需要定期修改 D.口令认证…

软件测试之 自动化测试 基于Python语言使用Selenium、ddt、unitTest 实现自动化测试

你好,我是Qiuner. 为记录自己编程学习过程和帮助别人少走弯路而写博客 这是我的 github gitee 如果本篇文章帮到了你 不妨点个赞吧~ 我会很高兴的 😄 (^ ~ ^) 想看更多 那就点个关注吧 我会尽力带来有趣的内容 本文档是一年前学后记得笔记 现在居然还记得很清楚 基于…

ASV1000视频监控平台:接入支持JT808标准的设备

目录 一、JT/T 808标准简介 (一)概述 (二)标准内容简介 1、消息分类 2、位置信息 3、报警信息 4、车辆控制 5、数据转发 二、在ASV1000上通过JT808添加设备 (一)登录视频监控平台管理端 &#x…

深度学习之基于Vgg16卷积神经网络乳腺癌诊断系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 基于VGG16卷积神经网络的乳腺癌诊断系统项目是一个结合深度学习技术和医学图像处理的创新项目,旨在提高…

嵌入式全栈开发学习笔记---C语言笔试复习大全14

目录 指针初级 指针的概念 指针类型 指针类型长度 指针的定义 通过指针访问数据 p1和*p1的区别 指针做函数参数 上一篇复习了8道编程题,这篇开始正式复习之指针! 说明:我们学过单片机的一般都是有C语言基础的了,网上关于C…

Sarcasm detection论文解析 |用于微博讽刺检测的上下文增强卷积神经网络

论文地址 论文地址:Context-augmented convolutional neural networks for twitter sarcasm detection - ScienceDirect 论文首页 笔记大纲 用于微博讽刺检测的上下文增强卷积神经网络 📅出版年份:2018 📖出版期刊:Neurocomputing &#x1f…

Golang | Leetcode Golang题解之第71题简化路径

题目: 题解: func simplifyPath(path string) string {stack : []string{}for _, name : range strings.Split(path, "/") {if name ".." {if len(stack) > 0 {stack stack[:len(stack)-1]}} else if name ! "" &am…

以中国为目标的DinodasRAT Linux后门攻击场景复现

概述 在上一篇《以中国为目标的DinodasRAT Linux后门剖析及通信解密尝试》文章中,笔者对DinodasRAT Linux后门的功能及通信数据包进行了简单剖析,实现了对DinodasRAT Linux后门心跳数据包的解密尝试。 虽然目前可对DinodasRAT Linux后门的通信数据包进…

Davinci工程开发方法论

基本概念 Flash Driver是下载到RAM里面的bin文件 Boot Manager是ROM上启动运行的第一个实例,可以是独立的bin文件,可以是集成在FBL里面。 Bootloader存储在ROM里面的bin文件 Demo Appl一个示例模板,用来跳转到Bootloader的,也是一…

OpenCV 入门(五) —— 人脸识别模型训练与 Windows 下的人脸识别

OpenCV 入门系列: OpenCV 入门(一)—— OpenCV 基础 OpenCV 入门(二)—— 车牌定位 OpenCV 入门(三)—— 车牌筛选 OpenCV 入门(四)—— 车牌号识别 OpenCV 入门&#xf…

【负载均衡在线OJ项目日记】项目简介

目录 前言 什么是负载均衡 所用的技术和开发环境 所用技术 开发环境 项目的宏观结构 leetcode 结构 结构 编写思路 前言 从C语言的文章到现在Linux网络部分,我已经涉猎了很多知识;终于在今天我要开始搞项目了,通过项目我也可以开始…

《Fundamentals of Power Electronics》——一些常用变换器的正则电路参数值

对于理想的CCM PWM dc-dc转换器,其包含一个电感和电容,正则模型有效的低通滤波器需要包含一个电感和一个电容。正则模型简化为如下图所示。 假设电容与负载直接相连。基础的buck、boost和buck-boost转换器的参数值如下表所示。 该模型可以用传统的线性电…

【贪心算法】最小生成树Kruskal算法Python实现

文章目录 [toc]问题描述最小生成树的性质证明 Kruskal算法Python实现时间复杂性 问题描述 设 G ( V , E ) G (V , E) G(V,E)是无向连通带权图, E E E中每条边 ( v , w ) (v , w) (v,w)的权为 c [ v ] [ w ] c[v][w] c[v][w]如果 G G G的一个子图 G ′ G^{} G′是…

贪心问题 难度[普及-]一赏

目录 #小A的糖果 删数问题 陶陶摘苹果(升级版) P5019 NOIP2018 提高组 铺设道路 小A的糖果 原文链接: P3817 小A的糖果 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 小 A 有 n 个糖果盒,第 i 个盒中有 a_i 颗糖果。 小 A 每…

【吃透Java手写】Spring(下)-AOP-事务及传播原理

【吃透Java手写】Spring(下)AOP-事务及传播原理 6 AOP模拟实现6.1 AOP工作流程6.2 定义dao接口与实现类6.3 初始化后逻辑6.4 原生Spring的方法6.4.1 实现类6.4.2 定义通知类,定义切入点表达式、配置切面6.4.3 在配置类中进行Spring注解包扫描…

Windows系统安装MySQL数据库详细教程

【确认本地是否安装mysql】 (1)按【winr】快捷键打开运行; (2)输入services.msc,点击【确定】; (3)在打开的服务列表中查找mysql服务,如果没有mysql服务&am…