ESP32开发环境搭建Windows VSCode集成Espressif IDF插件ESP32_IDF_V5.0开发编译环境搭建

一、安装ESP32-IDF库

下载网址:https://dl.espressif.com/dl/esp-idf/

打开上面的网页,选择单击页面中 ESP32-IDF v5.0.2 - Offine Installer,5.0.2是当前最新版本,如果没有ESP32-IDF v5.0.2 - Offine Installer,说明官方有更新最新版本,如果想要安装此教程版本可以把页面翻到最下面,会列出所有历史版本供用户下载。

注意:ESP-IDF库各版本之间API函数各有差异,版本号差别越大,差异越大,如果是新手小白还是尽量遵循你的开发板卖家或你找的源码教程中的版本来。

 下载成功后,在安装程序上单击右键选择 <以管理员身份运行>打开程序。

 打开安装程序后选择简体中文安装

勾选我同意协议,单击下一步按钮。

 如果是第一次安装,会出现如下提示。

安装程序会检查你当前系统有没有打开"长路径支持",因为GNU编译器产生的编译文件会有非常深的目录结构,如果不支持长路径,编译可能出现文件不存在,目录不存在等奇怪的错误。这里单击应用修复按钮,可以修复这个问题。

 在弹出的确认对话框中,选择是,开始修复

 修复完成,单击下一步

安装程序会提示修复成功;单击下一步。

注意:如果修复不成功,一般情况是安装软件打开时没有使用管理员权限打开,可以手动修改注册表来支持长路径:打开注册表HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled 设置为 1。该操作需要管理员权限。

接下来一步,开始选择安装目录,安装程序默认的安装位置为 C:\Espressif,但这里我是安装在F盘,如果全部源码编译后可能产生几十G的大小占用,我的F盘空间很大,我在F盘创建了两个文件夹,

一个 <ESP32> 文件夹放IDF库及后面学习用到的ADF,MDF等官方库。

一个 <ESP32_File> 文件夹放置所有的源码工程。

注意:强烈建议安装在其它盘符

原因1:有些电脑默认C盘空间较小,ESP-IDF安装后有几个G大小

原因2:使用命令行工具操作配置源码工程需要切换目录,多一步操作,而且源码工程编译会生成大量文件,每个工程都会有一两百MB的占用空间。

 下一步,确认安装组件,这里全部打勾,默认完全安装时ESP32 C2是不打勾的,看需要自己选择。然后单击下一步

 再次确认安装目录信息,然后单击安装。

 开始解压离线安装文件,静静等待它完成

 安装完成。三个全部勾选,1、2用于测试环境安装是否成功,3是将IDF工具链加入杀毒工具排除项,以加快编译速度。

 单击完成后出现如下两个窗口,一个是PowerShell命令行,一个是传统的cmd命令行窗口。显示如下内容,说明可以进行工程编译了。

二、检查设置环境变量

安装IDF库完成后,虽然使用命令行的方式可以编译工程了,但每次使用命令行着实不方便,这里检查并创建两个环境变量,为把ESP32编译集成到VSCode中做准备。

重要的一步,检查你的系统环境变量,在用户变量中检查是否有 IDF_PATH和IDF_TOOLS_PATH这两个环境变量,如果没有的话,创建一下,注意你自己刚才安装ESP-IDF库的目录。

打开电脑的用户环境变量设置,计算机属性->高级系统设置->环境变量->xx用户环境变量:

IDF_PATH : ESP-IDF库的路径

IDF_TOOLS_PATH : ESP-IDF编译工具链的路径

检查并创建这两个用户变量,像我的变量如下,你们参照刚才安装ESP-IDF库的目录创建,确保目录确实存在

IDF_PATH : F:\ESP32\Espressif\frameworks\esp-idf-v5.0.2

IDF_TOOLS_PATH : F:\ESP32\Espressif

 三、Visual Studio Code配置

下载地址:Visual Studio Code - Code Editing. Redefined

Visual Studio Code编辑器在Windows上安装比较简单,直接setup.exe。一路下一步,安装好后首次启动配置插件,插件配置必须联网,从网上下载

设置中文

同时按Ctrl + Shift + X 快捷键
在左侧“扩展”视图文本框中输入“Language Packs”,找到Chinese 中文插件,单击绿色的Install安装按钮,这里我们安装的是中文简体,安装完成右下角弹出一个重启按钮,点击重启,语言自动切换

 安装C/C++扩展

同样的方式搜索C/C++,安装C/C++扩展来支持C语言代码高亮

 打开ESP32工程

VSCode中打开ESP32的代码工程,可以直接打开代码所在的文件夹即可,文件菜单选择打开文件夹,选择一个源码目录打开

 打开后的文件结构

 安装Espressif IDF插件

在VSCode扩展插件中搜索 Espressif IDF,单击安装按钮

 安装完成

 配置Espressif IDF插件

单击VSCode设置齿轮菜单,弹出菜单选择设置

在打开的设置页面右上角单击 <以JSON打开设置> 的一个按钮

 将设置以JSON方式打开,上面的是我自己创建的一些设置,下面是Espressif IDF插件根据ESP环境变量自动生成的一些配置,不用更改下面的,看自己情况更改上面的

 这里贴出我的完整配置:

{
	"editor.insertSpaces": false,				// 自动插入空格禁用
	"editor.detectIndentation": false,			// 启用时根据文件内容进行重写
	"editor.renderControlCharacters": true, 	// 是否显示控制字符:启用
	"editor.renderWhitespace": "all",			// 显示4个空格是....
	"editor.tabSize": 4,						// tab设置为4个空格
	"editor.fontSize": 18,						// 代码字体大小
	"editor.fontFamily": "Monaco, 'Courier New', monospace", // 代码字体
	"update.mode": "manual",					// 设置不自动更新

	
	"cmake.configureOnOpen": true,
	"idf.adapterTargetName": "esp32",
	"idf.espIdfPathWin": "F:/ESP32/Espressif/frameworks/esp-idf-v5.0.2/",
	"idf.pythonBinPathWin": "F:/ESP32/Espressif/python_env/idf5.0_py3.11_env/Scripts/python.exe",
	"idf.toolsPathWin": "F:\\ESP32\\Espressif",
	"idf.customExtraPaths": "F:\\ESP32\\Espressif\\tools\\xtensa-esp-elf-gdb\\11.2_20220823\\xtensa-esp-elf-gdb\\bin;F:\\ESP32\\Espressif\\tools\\riscv32-esp-elf-gdb\\11.2_20220823\\riscv32-esp-elf-gdb\\bin;F:\\ESP32\\Espressif\\tools\\xtensa-esp32-elf\\esp-2022r1-11.2.0\\xtensa-esp32-elf\\bin;F:\\ESP32\\Espressif\\tools\\xtensa-esp32s2-elf\\esp-2022r1-11.2.0\\xtensa-esp32s2-elf\\bin;F:\\ESP32\\Espressif\\tools\\xtensa-esp32s3-elf\\esp-2022r1-11.2.0\\xtensa-esp32s3-elf\\bin;F:\\ESP32\\Espressif\\tools\\riscv32-esp-elf\\esp-2022r1-11.2.0\\riscv32-esp-elf\\bin;F:\\ESP32\\Espressif\\tools\\esp32ulp-elf\\2.35_20220830\\esp32ulp-elf\\bin;F:\\ESP32\\Espressif\\tools\\cmake\\3.24.0\\bin;F:\\ESP32\\Espressif\\tools\\openocd-esp32\\v0.11.0-esp32-20221026\\openocd-esp32\\bin;F:\\ESP32\\Espressif\\tools\\ninja\\1.10.2;F:\\ESP32\\Espressif\\tools\\idf-exe\\1.0.3;F:\\ESP32\\Espressif\\tools\\ccache\\4.6.2\\ccache-4.6.2-windows-x86_64;F:\\ESP32\\Espressif\\tools\\dfu-util\\0.9\\dfu-util-0.9-win64;F:\\ESP32\\Espressif\\tools\\esp-rom-elfs\\20220823",
	"idf.customExtraVars": {
		"OPENOCD_SCRIPTS": "F:\\ESP32\\Espressif\\tools\\openocd-esp32\\v0.11.0-esp32-20221026/openocd-esp32/share/openocd/scripts",
		"IDF_CCACHE_ENABLE": "1",
		"ESP_ROM_ELF_DIR": "F:\\ESP32\\Espressif\\tools\\esp-rom-elfs\\20220823/"
	},
	"idf.gitPathWin": "F:/ESP32/Espressif/tools/idf-git/2.39.2/cmd/git.exe",
	"git.openRepositoryInParentFolders": "never"
}

四、Espressif IDF插件使用

 依照上图Espressif IDF插件基本菜单一共12个,常用的只有两三个,依次为

1、选择串口(插头):即连接开发板的下载串口号,VS会列出当前连接电脑的所有串口让你选择,这个会记录,再新打开VSCode不用重新选择,开发过程中尽量不要更换USB线的电脑插口,否则串口号会变。

2、选择目标芯片:对应idf命令idf.py set-target xxxx。即你当前这个工程是要下载到什么芯片上面,如ESP32 S2,S3,C2,C3等等,工程要与芯片相匹配,这个选择是写入当前工程配置的,一般不用更改,工程下配置文件基本已经选择好的。

3、选择当前工程目录(文件夹):也不用修改,一般打开工程时会默认操作都在这个工程目录下

4、工程配置菜单(齿轮):对应idf命令idf.py menuconifg,用来配置当前工程的一些设置,配置项非常多,建议使用到再修改。一般代码工程都是配置好的,且不用修改

5、清除工程(垃圾桶):清除工程编译文件,一般用于压缩拷贝工程文件时用到,清除后工程目录占用空间会占用非常小,KB级,编译后为百MB级,还有一些编译过程中奇奇怪怪的问题也可以先清除编译后再编译

6、编译工程(圆柱体):编译当前工程,只是编译,没有下载功能

7、选择下载模式(五角星):一般都是选择串口UART方式下载

8、下载(闪电):下载编译好的固件到设备芯片上,这里只是下载,没有编译功能,修改代码后要先编译再点这个下载,所做的修改才有效。

9、串口监控(小电视):打开与设备连接的串口,打印设备串口信息

10、编译/下载/监控(一团火):最常用的一个,它将编译下载和打开串口监控做在了一起,点一次全部搞定

11、打开命令行:打开命令行窗口,且会定位在当前项目路径下,可以执行idf的一些命令

12、执行自定义任务:不使用

 

 

 

 

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

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

相关文章

ADB WIFI 链接

ADB WiFi链接手机 必须在同一网络下&#xff08;本人用的台式机网线手机连路由器WIFI&#xff09; 1.先确认USB数据线是否成功链接了手机 adb devices不管前面设备是什么名字&#xff0c;但是后面必须为device状态才算链接成功了&#xff0c;offline状态是不行的 有些没开启…

《微服务架构设计模式》第二章 服务的拆分策略

内容总结自《微服务架构设计模式》 服务的拆分策略 一、架构是什么软件架构的41视图模型为什么重要分层架构风格 二、定义微服务如何定义服务拆分难点定义服务API 一、架构是什么 软件架构的定义&#xff1a;计算机系统的软件架构是构建这个系统所需要的一组结构&#xff0c;包…

物联网Lora模块从入门到精通(八)Lora无线通信

一、前言 在某些环境下&#xff0c;无法通过有线传输数据&#xff0c;这时候我们需要使用Lora无线通信传输数据&#xff0c;Lora无线数据传输具有低功耗、距离长的特点&#xff0c;常用于工厂内等&#xff0c;需要Lora基站。 我曾做过距离测试&#xff1a;Lora模块距离测试-物联…

Linux---vim的使用

专栏&#xff1a;Linux 个人主页&#xff1a;HaiFan. 本章为大家带来Linux工具—vim Linux工具 关于rzszyumvim的基本概念vim的基本操作vim正常模式命令集vim末行模式命令集简单vim配置配置文件的位置常用配置选项 关于rzsz 这个工具用于windows机器和Linux机器通过Xshell传输…

PHP伪协议filter详解,php://filter协议过滤器

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 php://filter 一、访问数据流二、过滤数据流三、多…

electron 快速创建一个本地应用

参考官方文档流程 快速入门 | Electron 建议先全局安装electron&#xff0c;npm install -g electron 开发过程中可以在本地开发安装 使用electron快速创建一个web页面 &#xff0c;参考官方demo 实例 electron-quick-start 第一步&#xff1a; mkdir my-electron-app &am…

Linux

Linux 摘要写在前面1.Linux介绍2.Linux基本概念与命令3.Shell编程4.桌面操作系统框架5.GTK图形编程6.QT图形编程7.DBUS8.GDB9.Wine开发10.高可用存储技术11.高可用网络技术12.云计算 摘要 本篇博客参考中科方德国产操作系统的培训课程&#xff0c;对其主要内容进行总结&#x…

超越密码:网络安全认证的未来

你的物理现实的数字对应物正在惊人地增长。虽然肯定会有积极的结果&#xff0c;但随着互联网的发展&#xff0c;与之相关的风险也在迅速增加。在讨论网络安全风险管理时&#xff0c;首先想到的是密码。但当出现诈骗、网络钓鱼等威胁时&#xff0c;这还不够。 那么&#xff0c;…

大数据分析与机器学习:技术深度与实例解析【上进小菜猪大数据系列】

上进小菜猪&#xff0c;沈工大软件工程专业&#xff0c;爱好敲代码&#xff0c;持续输出干货。 大数据分析与机器学习已成为当今商业决策和科学研究中的关键组成部分。本文将深入探讨大数据技术的背景和原则&#xff0c;并结合实例介绍一些常见的大数据分析和机器学习技术。 …

Redux的基础操作和思想

什么是Redux? Redux是JavaScript应用的状态容器&#xff0c;提供可预测的状态管理! Redux除了和React一起用外&#xff0c;还支持其它框架;它体小精悍(只有2kB&#xff0c; 包括依赖)&#xff0c;却有很强大的插件扩展生态! Redux提供的模式和工具使您更容易理解应用程序中的…

与用户同行!2023卡萨帝开启高端生活方式新时代

6月20日&#xff0c;2023思享荟暨卡萨帝品牌升级发布会在重庆国际博览中心举行。在经历了高端产品引领、高端品牌引领、高端场景引领后&#xff0c;卡萨帝启动全新品牌升级&#xff0c;持续与用户同行&#xff0c;开启高端生活方式引领的新时代。 现场&#xff0c;海尔智家副总…

量化交易:止盈策略与回测

我们买基金或股票的时候通常用最简单的策略进行决策&#xff1a;低买高卖&#xff0c;跌的多了就加仓拉低持有成本&#xff0c;达到收益率就卖出。 那么如何用代码表示这个策略呢&#xff1f;首先定义交易信号则是&#xff1a;0.5%时买入&#xff0c;目标止盈线是1.5%&#xf…

ELFK日志分析系统并使用Filter对日志数据进行处理

目录 一、 FilebeatELK 部署Filebeat 节点上操作 二、Filtergrok 正则捕获插件内置正则表达式调用自定义表达式调用 mutate 数据修改插件multiline 多行合并插件date 时间处理插件 一、 FilebeatELK 部署 Node1节点&#xff08;2C/4G&#xff09;&#xff1a;node1/192.168.15…

Django rest framework基本知识

使用pycharm生成Django项目后&#xff0c;会生成工程目录和app目录 工程目录下5个文件&#xff0c;settings.py是全局配置相关的 urls.py是路有相关的 app相关的目录 models.py 数据库ORM对应的模型类 serializers.py 序列化与反序列化处理 views.py 根据request进行…

手工测试没有前途,自动化测试会取代手工测试?

在测试行业&#xff0c;一个一直被讨论的问题就是&#xff1a;手工测试没有前途&#xff0c;自动化测试会取代手工测试&#xff1f; 首先说结论&#xff1a;自动化测试不会取代手工测试&#xff0c;这完全是两个维度的事情。为什么不会呢&#xff1f;我们需要从本源上说起。 什…

DINO-DETR匈牙利匹配与加噪过程学习记录

今天再来回顾一下DINO中匈牙利匹配与损失函数部分&#xff0c;该部分大致与DETR相似&#xff0c;却又略有不同。 为了查看数据方便&#xff0c;博主将num_query改为20&#xff0c;max_select值也为20。 匈牙利匹配过程 首先是数据送入匈牙利匹配中进行标签匹配过程了。 获取…

【Android自动化测试】Ui Automator技术(以对QQ软件自动发说说为例)

文章目录 一、引言二、了解&#xff08;Android官方文档&#xff09;1、UiDevice 类2、UI Automator API3、UI Automator 查看器 三、使用1、依赖2、代码 一、引言 描述&#xff1a;UI Automator 是一个界面测试框架&#xff0c;适用于整个系统上以及多个已安装应用间的跨应用…

react---react router 5 基本使用

目录 1.路由介绍 2.路由使用 3.路由组件和一般组件 4.Switch 单一匹配 5.解决二级路由样式丢失的问题 6.路由精准匹配和模糊匹配 7.Redirect路由重定向 1.路由介绍 路由是根据不同的 URL 地址展示不同的内容或页面&#xff0c;在 SPA 应用中&#xff0c;大部分页面结果…

理解Web3公链共识算法的原理与机制

Web3时代带来了去中心化、透明和安全的数字经济发展&#xff0c;而公链的共识算法是实现这一目标的关键。共识算法确保了公链网络中的节点对交易和状态的一致性达成共识&#xff0c;同时防止了恶意行为和双重支付等问题。本文将深入探讨Web3公链共识算法的核心原理与机制。 1.共…

【Uniapp】小程序携带Token请求接口+无感知登录方案2.0

本次改进原文《【Uniapp】小程序携带Token请求接口无感知登录方案》&#xff0c;在实际使用过程中我发现以下bug&#xff1a; 若token恰好在用户访问接口时到期&#xff0c;就会直接查询为空&#xff0c;不反映token过期问题&#xff08;例如&#xff1a;弹窗显示订单查询记录…