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

我们收到用户对 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 版本简介

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CVPR 2023 | 图像超分,结合扩散模型/GAN/部署优化,low-level任务,视觉AIGC系列

1、Activating More Pixels in Image Super-Resolution Transformer 基于Transformer的方法在低级别视觉任务中,如图像超分辨率,表现出了令人印象深刻的性能。Transformer的潜力在现有网络中仍未得到充分发挥。为了激活更多的输入像素以实现更好的重建&a…

有哪些工具软件一旦用了就离不开?

💖前言 目前,随着科技的快速发展,电脑已经进入了许许多多人的生活 ,在平日的学习、工作和生活里,我们会用的各种各样的强大软件。市面上除了某些大公司开发在强大软件,还有各路大神开发具有某些功能的强大…

Java阶段四Day01

Java阶段四Day01 文章目录 Java阶段四Day01Security框架通配符Vue脚手架 Vue-cli关于VUE关于VUE Cli创建Vue Cli工程解决端口被占用 Vue工程的工程结构[.idea]【重要】[node_modules]【重要】[public]favicon.icoindex.html [src][assets][compnents]【重要】[router][store]【…

Spring基础知识(二)

目录 1.Spring Bean是什么 2.Spring提供的配置方式 3.Spring bean中的scope 4.Spring bean容器的生命周期 5.Spring的内部bean 6.Spring装配是什么 7.自动装配模式 8.自动装配的局限性 9.基于注解配置容器 10.如何启动注解装配 1.Spring Bean是什么 Spring官方文档对…

客户端负载均衡工具Ribbon

一 什么是Ribbon Ribbon介绍 目前主流的负载方案分为以下两种: 集中式负载均衡,在消费者和服务提供方中间使用独立的代理方式进行负载,有硬件的(比如 F5),也有软件的(比如 Nginx)…

10大白帽黑客专用的 Linux 操作系统

平时在影视里见到的黑客都是一顿操作猛如虎,到底他们用的都是啥系统呢? 今天给大家分享十个白帽黑客专用的Linux操作系统。 ▍1. Kali Linux Kali Linux是最著名的Linux发行版,用于道德黑客和渗透测试。Kali Linux由Offensive Security开发&…

哨兵架构redisCluster-Redis(五)

上篇文章介绍了主从架构以及lua脚本。 主从架构&lua脚本-Redis(四)https://blog.csdn.net/ke1ying/article/details/131159229 Sentinel集群 主从的搭建我们已经完成,但如果主节点宕机,这时候导致整个redis服务不可用怎么办…

打造智能生活方式

2个互联网工具与你分享 分享一: 随记单词是一款功能强大的单词记忆和管理应用程序。它为用户提供了便捷的学习工具和智能化的记忆方式,帮助用户轻松有效地记忆和掌握单词。 随记单词的特点之一是个性化记忆计划。用户可以根据自己的学习进度和需求&am…

【LeetCode热题100】打卡第21天:最小路径和爬楼梯

文章目录 【LeetCode热题100】打卡第21天:最小路径和&爬楼梯⛅前言 最小路径和🔒题目 爬楼梯🔒题目🔑题解 【LeetCode热题100】打卡第21天:最小路径和&爬楼梯 ⛅前言 大家好,我是知识汲取者&#…

牛客网基础语法41~50题

牛客网基础语法41~50题😘😘😘 💫前言:今天是咱们第五期刷牛客网上的题目。 💫目标:熟练用数学知识来解决编程问题,会利用每种循环。 💫鸡汤:压抑了&#xff0…

什么是远程工具,远程工具推荐

在当今数字化时代,远程工作正在变得越来越普遍。这种趋势不仅使企业管理更加便利,节省了时间和资源,同时也使员工更加自由和灵活。许多远程工作都需要使用到远程工具。本文将对远程工具进行简介和阐述。 什么是远程工具 远程工具是一种数字…

互斥锁实现线程互斥(嵌入式学习)

互斥锁实现线程互斥 互斥锁的概念互斥锁的函数示例代码 互斥锁的概念 互斥锁(Mutex)是一种用于多线程编程的同步原语(synchronization primitive),用于实现线程之间的互斥访问共享资源。互斥锁提供了一种机制&#xff…

wsl安装ubuntu并设置gnome图形界面详细步骤(win11+ubuntu18)

0.前言 wsl确实是个好东西,不过之前配了好几次都没有成功,因为wsl本身确实是有bug。当时配的时候查到GitHub上的一个issue还没被修好。现在重新配一下。 我的环境是Windows11家庭版。区别于win10,win11安装完默认就是wsl2。 1.下载 首先打…

[RPC]:Feign远程调用

文章目录 摘要1 RPC框架-Feign1.1 什么是Feign1.2 Feign解决的问题1.2.1 使用RestTemplate发送远程调用代码1.2.1.1 项目示例调用链路1.2.1.2 代码逻辑1.2.1.3 代码实现1.2.1.4 存在的问题 1.3 Feign如何使用1.3.1 使用逻辑1.3.2 引入依赖1.3.3 启动类添加注释开启feign功能 摘…

3.数据操作

SQL句子中语法格式提示: 1.中括号([])中的内容为可选项; 2.[,...]表示,前面的内容可重复; 3.大括号({})和竖线(|)表示选择项,在选择…

网络安全|渗透测试入门学习,从零基础入门到精通—渗透中的开发语言

目录 前面的话 开发语言 1、html 解析 2、JavaScript 用法 3、JAVA 特性 4、PHP 作用 PHP 能做什么? 5、C/C 使用 如何学习 前面的话 关于在渗透中需要学习的语言第一点个人认为就是可以打一下HTML,JS那些基础知识,磨刀不误砍柴…

键盘按键事件 通过键盘上下左右按键移动界面上图标

#main.c文件 #include “keyevent.h” #include int main(int argc, char *argv[]) { QApplication a(argc, argv); KeyEvent w; w.show(); return a.exec();} #include “keyevent.h”//头文件 #ifndef KEYEVENT_H #define KEYEVENT_H #include #include #include cl…

机器学习、计算机视觉和深度学习

机器学习、计算机视觉和深度学习 1 什么是机器学习?2 机器学习的类型3 什么是计算机视觉?4 计算机视觉的机器学习应用5 总结参考 这篇博客将简要介绍:机器学习和用于计算机视觉的机器学习。 想象一下:你可以使用人脸检测算法在图…

自定义修改Typora原生默认github风格样式

使用typora的时候,想要自定义一些颜色、字体,或者修改一些设置,这个时候需要修改或者自己编写css文件。 修改涉及的样式: ① 目录 ② 块应用 我还是比较喜欢原生自带的默认样式(github样式), 但…

chatgpt赋能python:Python怎么退出程序:让你轻松掌握退出Python程序的方法

Python怎么退出程序:让你轻松掌握退出Python程序的方法 Python是一种功能强大、易于学习且具有广泛应用的编程语言。在Python开发中,经常需要退出程序,以便在不需要时释放内存和其他资源。那么,Python怎么退出程序?本…