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

news2024/12/28 18:30:11

一、安装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、执行自定义任务:不使用

 

 

 

 

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

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

相关文章

JS获取省市区/县,layui获取省市区,layui实现省市区联动,jquery实现省市区联动

前言 通过JS方式获取省市区数据&#xff0c;可自己手动更改JS文件数据 非常简单 效果 实现 百度网盘链接: https://pan.baidu.com/s/1RktJgXY0NP7Eq0ohvBPOEA 提取码: 477z gitee下载链接&#xff1a;https://gitee.com/yuanyongqiang/common-files/blob/master/area.js 下…

超高压系列IXBX50N360HV、IXBT14N300HV、IXBH32N300高压反向导通 (BiMOSFET™) IGBT器件

器件介绍&#xff1a; 超高压系列3000V - 3600V反向导通 (BiMOSFET™) IGBT将MOSFET和IGBT的优势相结合。这些高压器件的饱和电压和内置二极管的正向电压降均具有正电压温度系数&#xff0c;因此非常适合用于并联运行。“自由”内置体二极管用作保护二极管&#xff0c;为器件关…

LibOS Gramine安装

文章目录 参考资料Gramine安装运行helloworld升级kernel到5.15 参考资料 Gramine Quick start Gramine安装 Gramine安装要求&#xff1a; Linux 内核版本至少为 5.11&#xff08;启用 SGX 驱动程序&#xff09; 如果是5.4.0-150-generic版本&#xff0c;则可以参考《Install …

Baumer工业相机堡盟工业相机如何通过BGAPISDK将相机图像写入相机内存(C#)

Baumer工业相机堡盟工业相机如何通过BGAPISDK将相机图像写入相机内存&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机BGAPISDK和相机内存的技术背景Baumer工业相机通过BGAPISDK将相机图像写入相机内存功能1.引用合适的类文件2.通过BGAPISDK将相机图像写入相机内存功能…

ADManager Plus:提升企业管理效率的强大利器

导语&#xff1a; 在当今数字化时代&#xff0c;企业管理的重要性不言而喻。有效的企业管理可以提高生产力、优化业务流程&#xff0c;并促进组织的持续增长。而ADManager Plus作为一款功能强大的企业管理工具&#xff0c;为企业提供了全面的解决方案&#xff0c;帮助企业管理…

从0到1精通自动化测试,pytest自动化测试框架,Fixture之conftest.py与yield实现teardown(四)

目录 一、Fixture之conftest.py 1、Fixture优势 2、fixture参数传入&#xff08;scope”function”&#xff09; 3、conftest.py配置 二、Fixture之yield实现teardown 1、scope“module” 2、yield执行teardown 3、yield遇到异常 4、addfinalizer终结函数 一、Fixture…

【云原生•监控】基于Prometheus的云原生集群监控(理论+实践)-01

【云原生•监控】基于Prometheus的云原生集群监控(理论实践)-01 前言 「笔者已经在公有云上搭建了一套临时环境&#xff0c;可以先登录体验下&#xff1a;」 http://124.222.45.207:17000/login 账号&#xff1a;root/root.2020 云原生监控挑战 Prometheus 是用 Go 语言编写&am…

FreeRTOS实时操作系统(四)中断任务管理

系列文章目录 文章目录 系列文章目录前言中断优先级FreeRTOS中的中断管理一系列中断管理寄存器中断配置寄存器中断屏蔽寄存器 中断管理实战 前言 跟着正点原子学习一下中断管理&#xff0c;正好之间没有总结过&#xff0c;还有些地方不清楚。 中断优先级 中断的工作方式就不介…

Oracle的DCL、DDL、DML语言学习使用——oracle入门学习(一)

Oracle的DCL、DDL、DML语言学习使用 前言1.SQL Plus1.1 命令行SQL PLUS使用sqlplus /nologsqlplus / as sysdba 1.2 oracle自带SQL PLUS使用1.3 sys和system用户的区别 2. Oracle的体系结构3.DCL语言什么是DCL语言3.1 查看数据文件位置和表空间3.2 创建表空间3.3 删除表空间3.4…

鉴源实验室丨TBOX通讯模组AT指令测试

作者 | 李伟 上海控安安全测评部总监 来源 | 鉴源实验室 引言&#xff1a;上一篇文章我们讲了整车的OTA升级测试(详解车载设备FOTA测试&#xff09;&#xff0c;本篇我们介绍在车载零配件上比较少见却很实用的测试&#xff1a;通讯模组的AT&#xff08;Attention&#xff09;指…

总结Nginx的安装、配置与设置开机自启

在Ubuntu下安装Nginx有以下方法&#xff0c;但是如果想要安装最新版本的就必须下载源码包编译安装。 一、Nginx安装 1、基于APT源安装 sudo apt-get install nginx 安装好的文件位置&#xff1a; /usr/sbin/nginx&#xff1a;主程序 /etc/nginx&#xff1a;存放配置文件 /us…

高压放大器可以驱动电机吗

高压放大器可以驱动电机。事实上&#xff0c;高压放大器在许多应用中都是电机控制的核心部件之一。高压放大器可以将输入信号转换为高电压和高电流&#xff0c;从而驱动电动机。 一、高压放大器的原理 高压放大器是一种电子设备&#xff0c;用于将低功率信号转换为高功率信号。…

云原生之深入解析如何在Kubernetes下快速构建企业级云原生日志系统

一、概述 ELK 是三个开源软件的缩写&#xff0c;分别表示 Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个 FileBeat&#xff0c;它是一个轻量级的日志收集处理工具 (Agent)&#xff0c;Filebeat 占用资源少&#xff0c;适合于在各个服务器上搜集日志后传输…

Lombok你不知道的用法

Lombok是大家经常用的一款工具&#xff0c;它可以帮我们减少很多重复代码的书写&#xff0c;但是我们对它的使用&#xff0c;可能更多局限于实体类的编写&#xff0c;比如说通过Data注解实现减少getter/setter/toString等方法的编写&#xff0c;其实它还有更多的注解功能&#…

美依礼芽破圈!小红书数据解读,如何拨动二次元心弦?

今年&#xff0c;二次元存在感爆棚。新世代下二次元群体愈发壮大&#xff0c;不少博主发布二次元内容、品牌也试图融入二次元圈。那么&#xff0c;如何与之打成一片呢&#xff1f;今天&#xff0c;通过小红书数据&#xff0c;我们来解读二次元的内容方向。 点赞破8亿&#xff0…

【每日一题】1595. 连通两组点的最小成本

【每日一题】1595. 连通两组点的最小成本 1595. 连通两组点的最小成本题目描述解题思路 1595. 连通两组点的最小成本 题目描述 给你两组点&#xff0c;其中第一组中有 size1 个点&#xff0c;第二组中有 size2 个点&#xff0c;且 size1 > size2 。 任意两点间的连接成本…

对象的构造

问题 对象中成员变量的初始值是多少&#xff1f; 成员变量的初始值 #include <stdio.h>class Test { private:int i;int j; public:int getI() { return i; }int getJ() { return j; } };Test gt;int main() {printf("gt.i %d\n", gt.getI());printf("…

UE中使用Editor Utility Widget创建编辑器工具

在UE中可以使用EditorUtilityWidget创建编辑器面板工具&#xff0c;方便平时的开发。在UE4中使用编辑器UI需要开启对应插件&#xff0c;而UE5中则默认启用&#xff0c;下面就来学习一下。 1.UI创建 1.1.在Content Browser中右键&#xff0c;找到Editor Utilities即可创建编辑…

[MySQL]不允许你不会SQL语句之查询语句

&#x1f3ac; 博客主页&#xff1a;博主链接 &#x1f3a5; 本文由 M malloc 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f384; 学习专栏推荐&#xff1a;LeetCode刷题集&#xff01; &#x1f3c5; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指…

分享几个AI绘图的学习网址

AI绘图是一种使用人工智能技术来创建图形和图像的技术。 从技术角度来看&#xff0c;AI绘图是一个非常有趣和不断发展的领域。随着人工智能技术的不断进步&#xff0c;AI绘图也在不断地发展和创新&#xff0c;现在已经成为数字艺术领域中的一个重要分支。 AI绘图的出现也为许多…