使用一键安装工具快速搭建 ESP-IDF 开发环境 (Windows)

news2025/2/13 2:11:35

我们收到用户对 ESP-IDF SDK 软件开发环境感到搭建难、门槛高的反馈。为解决用户在此方面的问题。为此,我们推出本期教程介绍在 Windows 操作系统下使用一键安装工具快速搭建 ESP-IDF 开发环境。

您可以观看下面的教程视频,也可以阅读接下来本篇的图文教程。

【乐鑫教程】|使用一键安装工具快速搭建 ESP-IDF 开发环境 (Windows)

本篇教程分为以下三个部分:

Part 1:使用一键安装工具快速搭建 ESP-IDF SDK 软件编译环境——Windows

1. 下载 ESP-IDF 工具安装器

2. 安装 ESP-IDF 软件编译环境

3.  同一 Windows 环境下同时运行多个版本的 SDK 软件编译环境

Part 2:使用 ESP-IDF CMD 命令行终端编译 SDK 例程——ESP-loT-Bridge

Part 3:使用 VS Code 编写 SDK 代码或进行二次开发

提示:推荐使用系统:64 bit Windows 10 及以上。

在进行开发环境搭建时请暂时关闭电脑端杀毒软件避免误删文件。


Part 1:使用一键安装工具快速搭建 ESP-IDF SDK 软件编译环境——Windows

1. 下载 ESP-IDF 工具安装器

首先我们需要访问乐鑫官网,在支持——技术文档中搜索“编程指南”,找到“ESP-IDF 编程指南”。ESP-IDF 编程指南中的快速入门章节是对快速搭建 ESP-IDF 开发环境的介绍,在这里我们可以找到 ESP-IDF 的安装说明 “Windows Installer”。

 在跳转后的页面找到 ESP-IDF 工具安装器,并点击下载链接进行下载。

您也可以直接点击此链接下载 ESP-IDF 工具安装器:ESP-IDF 工具安装器。

跳转成功后可以看到 ESP-IDF 的在线版本离线版本安装包。

 对于选择何种版本的安装包,我们有如下建议:

  • 如使用 Release 版本或 Master 版本的 ESP-IDF SDK 软件开发环境,需要使用在线安装包。
  • 使用在线安装包安装时,建议电脑连接有线网络加快网速。
  • 国内用户如访问 Github 有困难,建议勾选 Gitee 镜像。

  • 如需使用 Tag 版本的 ESP-IDF SDK 软件开发环境,建议使用离线安装包。
  • 离线安装程序不需要任何网络连接,且安装程序中包含了 Python、Git、交叉编译器、CMake 和 Ninja 构建工具等所有需要的依赖文件,这些都是 ESP-IDF 中构建固件的必备工具,因此我们更推荐刚入门的用户使用离线安装程序。

ESP-IDF SDK 软件环境适配所有乐鑫 ESP32 系列的产品,但不同系列的 ESP32 产品要求的 ESP-IDF SDK 版本不同,具体对应的版本可以在官网的 ESP-IDF SDK 软件发布说明 中查看。

此处需要注意:

  • 如果需要使用 ESP32-C6 或 ESP32-H2 系列产品,目前需要在选择 ESP-IDF 版本中选择 Master 版本的 SDK。
  • 如无特殊需求,我们推荐使用最新 Tag 或 Release 版本的 SDK。

此外,ESP-IDF 的开发工作流程和不同版本的具体区别,可以访问链接查看:ESP-IDF 版本简介 - ESP32 - — ESP-IDF 编程指南 latest 文档

本教程中选用的是离线版本安装包演示安装 ESP-IDF Tag v5.0 版本的软件编译环境。

2. 安装 ESP-IDF 软件编译环境

首先,点击运行安装包并选择语言环境。

 勾选同意此协议,进入下一步。

 等待系统检查完成,继续下一步。

 选择 ESP-IDF 编译工具安装的路径,再点击下一步。

 在配置界面中,可以为 ESP 系列的产品选择安装串口驱动和 USB 驱动,还可以勾选需要的产品系列。设置完成后,进入下一步。

 检查安装路径,点击安装完成。此处大约需要等待 4 分钟。

 安装完成后,桌面上生成了 ESP-IDF CMD 终端,打开终端,当终端成功打印了“idf.py build”指令时,说明我们的环境已经安装成功了。

3.  同一 Windows 环境下同时运行多个版本的 SDK 软件编译环境

我们注意到大家会对“同一 Windows 环境下是否支持多个版本的 SDK 软件编译环境”存在疑惑。事实上,多个版本的 SDK 可以在同一 Windows 环境下同时存在。

我们运行“idf.py build”指令在两个不同环境的终端内进行代码编译,可以看到当我们使用不同版本的 SDK CMD 终端编译环境编译例程时,可以各自独立编译成功,不受任何限制,不会相互干扰。编译完成后会打印日志,日志中显示当前编译工程生成的固件以及对应固件的下载地址,并提示我们使用“idf.py -p (PORT) flash”指令来烧录固件。

 如果想要切换芯片的环境,我们可以运行 target 指令,如:“idf.py set-target esp32s3”,其中 S3 为具体的芯片环境。切换芯片环境后,我们再对例程重新进行编译,即可看到芯片环境已经切换成功了。

 到这里为止,在 Windows 环境下使用一键安装工具快速搭建 ESP-IDF SDK 软件编译环境已经完成了。

Part 2:使用 ESP-IDF CMD 命令行终端编译 SDK 例程——ESP-loT-Bridge

接下来我们将为大家演示使用 ESP-IDF CMD 软件编译环境来编译 乐鑫其他应用方案的 SDK 例程,此处演示的是 ESP-IoT-Bridge 网关方案 SDK 的软件编译。

我们可以借助 ESP-IDF CMD 的终端环境先来克隆所需要的 SDK 源码。进入到上层目录,将所有待克隆的 SDK 都放到 ESP 目录下,我们在 SDK 的目录下获取克隆的链接:https://github.com/espressif/esp-iot-bridge.git

这里我们克隆 Master 版本的 ESP-IoT-Bridge SDK。如果我们需要某个特定版本的 SDK,只需要在克隆指令增加 -b branch(branch 为具体的版本号)来指定克隆特定版本的 SDK。

 SDK 克隆完成后,还需要克隆 SDK 对应的子仓库:

  • 运行“git submodule update --init —recursive”指令来克隆子仓库
  • 运行“git pull”指令,确认当前是最新的 SDK

 然后我们需要检查 ESP-IoT-Bridge SDK 支持的 IDF 版本号,可以看到目前已经适配 IDF Release v5.0 版本。

接下来测试对应 SDK 的例程。运行“dir”指令可以查看当前的目录。

 我们使用 cd 指令进入到例程的目录下,然后使用“idf.py build”指令编译例程。

 现在可以看到,我们使用 ESP-IDF v5.0 版本的 CMD 终端环境编译 ESP-IoT-Bridge 下的例程已经编译成功。编译完成的日志中会显示当前编译工程生成的固件以及对应固件的下载地址。

 同样,ESP-IoT-Solution、ESP-Mesh-Lite 等其他 SDK 例程编译与上述操作步骤相同。

Part 3:使用 VS Code 编写 SDK 代码或进行二次开发

如果用户需要基于 SDK 里的例程进行二次开发,我们可以在“ESP-IDF CMD”终端运行“code .”命令,使用 VS Code 代码编辑环境打开我们的 SDK 进行代码编写和二次开发。

 我们推荐使用「ESP-IDF CMD 工程编译环境 + VS Code 代码编辑器」,它有以下几个优势:

  • 便于版本维护、更新和管理
  • 支持便捷切换不同芯片的软件环境
  • 支持编译乐鑫发布的其他应用解决方案的 SDK 例程。

以上就是本期教学的全部内容,本期教学中涉及的资源可参考下方相关链接自行获取。如果您有任何问题,可以到乐鑫官网查看相关技术文档获取帮助,欢迎在评论区留言讨论,或随时联系我们。


相关链接

  • ESP-IDF 编程指南
  • ESP-IDF 工具安装器下载(离线版本 & 在线版本)
  • ESP-IDF SDK 软件发布说明
  • ESP-IoT-Bridge SDK
  • 乐鑫其他应用方案的 SDK
  • ESP-IDF 版本简介

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

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

相关文章

动态规划dp —— 25.单词拆分

1.状态表示 是什么?dp表中里的值所表示的含义就是状态表示 dp[i]表示:[0,i]区间内的字符串,能否被字典中的单词拼接而成(存ture或false) 2.状态转移方程 dp[i] 等于什么 根据最后一个位置,来划分问题&a…

easyPOI导出多Sheet

easyPOI导出多Sheet 声明,本文基于JAVA操作Excel(POI、easyPOI、easyExcel_我认不到你的博客-CSDN博客讲解,需要基础的可以看这篇,特别是Excel注解 本篇最后有工具类和自定义的注解类,只需要傻瓜式复制粘贴应该就可以用…

与 NGINX 团队直接交流 | 微服务之月火热报名中

原文作者:NGINX 原文链接:与 NGINX 团队直接交流 | 微服务之月火热报名中 转载来源:NGINX 官方网站 NGINX 唯一中文官方社区 ,尽在 nginx.org.cn 又是一个热情似火的六月,一年一度的 Microservices June 微服务之月再…

6.12 共享内存(内存映射的使用、注意事项、进程间通信、systemV共享内存)

目录 system V IPC 共享内存 共享内存使用步骤 system V IPC -key system V IPC -ftok system V IPC -ftok-示例 共享内存创建-shmget 共享内存创建-shmget-示例1 共享内存创建-shmget-示例2 共享内存映射-shmat 共享内存读写 - 示例 共享内存撤销映射 - shmdt 共享…

etcd基本使用

目录 CRUD1、基本的put/get/del2、获取当前所有的key3、获取/删除带有前缀的键 lease使用1、创建lease,续租lease,撤销lease2、将lease attach到key上 watch使用watch、watch_oncereplacedeletewatch_prefix、watch_prefix_oncecancel_watchadd_watch_ca…

抖音整治短剧类小程序内容

我是卢松松,点点上面的头像,欢迎关注我哦! 短剧CPS项目这两年不是挺火的吗,很多草根创业者都在做短剧CPS当副业。 前两天,抖音开放平台团队发布公告: 近期,在微短剧类小程序内容合规排查中&am…

【LeetCode】HOT 100(11)

题单介绍: 精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。 目录 题单介绍&#…

工作多年的工作焦虑症-广泛性焦虑症

我相信工作多年的人都会有自己的工作焦虑症的情况,而我们普通人最多的最容易的也就是广泛性焦虑症,广泛性焦虑障碍(GAD)是一种常见的慢性焦虑障碍,患者长时间处于一种担心、紧张、无法放松的状态。它会让一种广泛的担心…

采购协同:企业数字化转型的关键环节

企业数字化转型已成为当今市场的主流趋势,而采购协同作为企业数字化转型的关键环节,对于企业的成本控制、供应链管理等方面都有着至关重要的影响。本文将围绕采购协同的重要性、数字化转型的方法和优势、以及实现采购协同的关键环节展开讨论。 一、采购协…

Java并发容器 并发队列

并发容器概览 ConcurrentHashMap : 线程安全的HashMap CopyOnWriteArrayList: 线程安全的List BlockingQueue:这是一个接口,表示阻塞队列,非常适合用于作为数据共享的通道 ConcurrentLinkedQueue : 高效的非阻塞并发队列,使用链表实现。可…

目标检测数据集---道路破损缺陷数据集

✨✨✨✨✨✨目标检测数据集✨✨✨✨✨✨ 本专栏提供各种场景的数据集,主要聚焦:工业缺陷检测数据集、小目标数据集、遥感数据集、红外小目标数据集,该专栏的数据集会在多个专栏进行验证,在多个数据集进行验证mAP涨点明显,尤其是小目标、遮挡物精度提升明显的数据集会在该…

Java list安全删除元素详解

背景 前一段时间被问到了关于 List 集合的安全删除元素问题。一时间没反应过来这问题问的是什么,安全体现在什么地方,线程安全?线程安全可以保证元素粒度的数据唯一吗?删除是指什么,list.remove()? 带着这…

5外包功能测试做完,人废了一半····

先说一下自己的情况。大专生,18年通过校招进入湖南某软件公司,干了接近5年的点点点,今年年上旬,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了五年的功能测试…

剑指offer35 复杂链表的复制

复杂链表的复制 文章目录 复杂链表的复制方法一 回溯哈希表第二种解释 方法二:拼接拆分算法流程 参考文献 本题要求我们对一个复杂链表进行复制。在复杂链表中,每个节点除了有一个next指针指向下一个节点,还有一个random指针指向链表中的任意…

SpringBoot+Vue 车辆充电桩系统

文章目录 1、效果演示效果图技术栈 2、 前言介绍(完整源码请私聊)3、主要技术3.4.1 数据库概念结构设计3.4.2 数据库具体设计 4 系统功能的具体实现4.1 前台功能模块4.1.1 首页功能4.1.2 用户后台管理 4.2 后台功能模块4.2.1 管理员功能4.2.2 维修员功能…

后端(三):后端实战(表白墙的设计)

上一章结束了 Servlet 的学习,ok,现在我们已经学会了 1 1 了,现在开始我们要学会 百以内的加减乘除法。 本章就做一个最简单的 小小项目:表白墙。 在开始表白墙项目开始之间,我们先提前说好,这里主要跟关…

海思3559万能平台搭建:SPI输出h264码流

前言 面对各种各样的客户需求,spi接口也是一种传码流的形式,spi同步422可以保证抗干扰能力强的同时传输距离也很长,本文会介绍海思平台spi作为主机的发送功能以及发送码流的处理方式 1. 管脚复用: 首先需要配置的肯定是管脚复用&…

java容器排序

Java的容器 在Java中,我们想要保存对象可以使用很多种手段。最简单的就是数组。但是数组具有固定的尺寸,而通常来说,程序总是在运行时根据条件来创建对象,我们无法预知将要创建对象的个数以及类型,所以Java推出了容器…

动态规划-最长的回文序列

这里写自定义目录标题 1 描述2 样例2.1 样例12.2 样例2 3 解题思路以及实现方法3.1 解题思路3.1.1 确定状态3.1.2 转移方程3.1.3 初始条件和边界情况3.1.4 计算顺序 3.2 题解3.2.1 C实现3.2.2 java实现 该题是lintcode上 667 最长的回文序列,该题的解题思路亦是参…

方法选对,事半功倍:数据分析方法

人们发明了数据可视化,利用人类大脑更善于处理图像信息的特点,透过图形化的手段,用图表清晰有效地传达和沟通信息。把以往庞杂、繁乱的数据报表转化成简洁明了的可视化图表。 通过数据可视化制作出的图表,不再像传统分析方案那样…