嵌入式物联网实战开发笔记-乐鑫ESP32开发环境ESP-IDF搭建【doc.yotill.com】

乐鑫ESP32入门到精通项目开发参考百例下载:

链接:百度网盘 请输入提取码
提取码:4e33

==========================================

3.1 ESP-IDF 简介 
ESP-IDF(Espressif IoT Development Framework)是乐鑫(Espressif Systems)为 ESP 系列芯片开发的物联网开发框架。它支持 ESP32、ESP32-S、ESP32-C 和 ESP32-H 系列 SoC,基于 C/C++语言提供了一个自给自足的 SDK,方便用户在这些平台上开发通用应用程序。ESP-IDF 具有免费开源、专业稳定、功能丰富和易于使用等特点。它支持 Eclipse 和 VSCode 等 IDE,集成了大量的软件组件,包括 RTOS、外设驱动程序、网络栈、多种协议实现技术以及常见应用程序的使用助手。此外,ESP-IDF 还提供了详尽的软件组件使用和设计文档,包含 100 多个示例,有助于开发人员充分理解 ESP-IDF 功能,并从中挑选最适合构建其应用程序的模块。 
下面我们来看一下 Windows 系统下 ESP-IDF 的安装流程。 
3.2 安装 ESP-IDF 物联网开发框架 
3.2.1 下载 ESP-IDF 物联网开发框架 
打开乐鑫官方 Windows 安装下载中心下载 ESP32-IDF 安装包,找到 5.1.2 离线安装包。ESP32 的开源物联网开发框架安装包如下图所示: 

 
图 3.2.1.1 ESP32-IDF 安装包(部分截图) 
上图中 ESP32-IDF v5.1.2 - Offine Installer,5.1.2 是当前最新版本,如果没有 ESP32-IDF v5.1.2 - Offine Installer,说明官方有更新最新版本。我们建议使用离线 ESP32-IDF 安装包,因为使用在线 ESP32-IDF 安装包搭建环境需要网络的支持,所以我们不能保证网络下载过程中丢失某些文件,从而导致搭建环境失败。 
下载成功后,在安装程序上单击右键选择<以管理员身份运行>运行 esp-idf-tools-setup-
 

图 3.2.1.2 以管理员身份运行 IDF 安装文件打开安装程序后选择简体中文安装,如下图所示: 
 

图 3.2.1.3 选择简体中文 
往下走就是许可协议,勾选“我同意此协议”,单击下一步,如下图所示: 
 

图 3.2.1.4 勾选“我同意此协议” 
如果是第一次安装,会出现如下图提示。 
 

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

图 3.2.1.6 在注册表中启用长路径如果修复不成功,一般情况是安装软件打开时没有使用管理员权限打开,可以手动修改注册表来支持长路径:打开注册表 HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\LongPat hsEnabled 设置为 1。如下图所示: 
 

修复完成之后,点击下一步。 
接下来一步,开始选择安装目录,安装程序默认的安装位置为 C:\Espressif,但这里我是安装在 D 盘,如果全部源码编译后可能产生几十 G 的大小占用,我们在 D 盘下创建 ESP32\Espre ssif 文件夹来保存 ESP32-IDF 库安装过程中生成的文件,如下图所示: 
 

图 3.2.1.8 设置安装路径 
这个安装路径非常重要,因为 VS Code 软件的 IDF 插件需要此路径来获取相关文件,所以开发者务必牢记该路径。 
下一步,确认安装组件,这里全部打勾,默认完全安装时 ESP32C2 是不打勾的(如下图所示),看需要自己选择。然后单击下一步。 
 

图 3.2.1.9 选择安装组件我们选择全部安装。点击下一步再次确认安装目录信息,然后单击安装。安装完成,三个全部勾选,1、2 用于测试环境安装是否成功,3 是将 IDF 工具链加入杀毒工具排除项,以加快编译速度,如下图所示: 
 

3.2.2 验证 ESP-IDF 库 
ESP-IDF 安装完成之后,系统自动打开两个窗口,它们分别为 PowerShell 命令行和传统的 cmd 命令行窗口,分别如下图所示: 
 


从上图中可以看到,当出现红色方框内的内容时,可以初步证明安装是没有问题的,同时这两个窗口都提示“idf.py build”字符串,它是 ESP32-IDF 库提供的编译代码命令。到此,我们如何验证 ESP32-IDF 库安装是否成功呢?这里我们使用 ESP32-IDF 库提供的实例来验证安装是否成功。首先我们打开 D:\ESP32\Espressif\frameworks\esp-idf-v5.1.2\examples\get-started 路径,在此路径下包含三个 ESP32-S3 例程,如下图所示: 
 

这里我们使用第二个例程(hello_world)来验证 ESP32-IDF 库是否安装成功,首先拷贝这里例程的路径,然后在 PowerShell 或 cmd 命令行窗口输入命令“cd D:\ESP32\Espressif\framew orks\esp-idf-v5.1.2\examples\get-started\hello_world”,最后按回车进入此例程,如下图①所示: 
 

此时在此窗口输入命令“idf.py build”(上图②)编译此工程,编译结果如下所示: 
 

 窗口提示命令“idf.py -p (port) flash”,证明 ESP32-IDF 库安装完成。开发者也可以使用其他命令来验证,如命令(idf.py Menuconfig 进入菜单配置、idf.py set-target xxx 选择芯片或者是 idf.py monitor 开启监控等)。 
3.2.3 添加 ESP32-IDF 的环境变量 
按照此过程(此电脑→属性→高级系统→环境变量)打开,如下图所示: 
 

图 3.2.3.1 添加环境变量 
如果 ESP32-IDF 库安装成功,则系统自动为我们添加上图中的 IDF_TOOLS_PATH 和
IDF_PATH 环境变量,否则手动添加这两个环境变量。 
3.3 搭建开发环境 
3.3.1 下载与安装 VSCode 
鉴于我们使用的是 VSCode IDE 搭配官方 IDF 的方式进行开发,我们接下来便介绍一下
VSCode 的安装过程。 
首先,进入 VSCode 官方下载页面,根据系统需求选择下载安装包下图是 VSCode
 

图 3.3.1.1 VSCode 官网下载界面 
     这里,我们选择 Windows 版本进行下载。因为,我们是在 Windows 环境下进行的开发,故在此介绍 Windows 版本的下载步骤。不出意外,其它版本的下载方式应该也是一样的。这里我们不多废话,直接点击下载。 
     下载完后,我们按照如下所示步骤进行即可: 
 


 在该步骤中,路径如需更改的,请您点击“浏览”进行更改,但请注意:修改的路径最好不要出现中文,以避免在往后的开发过程中遇到问题而导致重装软件,这对您来说就得不偿失了。 
 

     如需修改,同样点击“浏览”进行设置,无需修改的话直接点击“下一步”即可。 
 

     这一步骤同样是有需求的都勾上,我们建议是都勾上。 
 

 
 
详细的个性化设置我们便不多介绍了,在这里我们介绍如何设置中文界面。 
我们在上图 3.4.8 中找到最左边一栏的“扩展”在搜索框中输入“Chinese”即可出现红色框内的扩展应用,然后我们点击安装并重启软件即可。 
至此,VSCode 的安装与配置便算是大功告成了。感谢您能耐心看到此处。 


3.3.2 安装 Espressif IDF 插件 
打开VS Code软件,然后按下快捷键“Ctrl+Shift+X”进入应用商城,在搜索栏下搜索Espressif 
IDF 插件,点击安装即可: 
 

至此 Espressif IDF 插件就算安装好了,接下来我们来看看插件的配置。 
3.3.3 配置 Espressif IDF 
快捷键 ctrl+shift+p 呼出命令栏,在弹如下提示框后,搜索“配置 ESP 插件”,或者在使用快捷键 ctrl+shift+p 呼出命令栏后,在搜索框输入配置命令:Configure ESP-IDF。 
 

 
 
到这一步需要注意的两点: 
     ①:这一项有两个选项,我们选择“Espressif”,不选择“Github”。因为,国内用户安装 “Github”会非常的慢,有时甚至会下载失败,所以我们选择“Espressif”选项即可。经过之前的配置选择该选项也会快很多。 
     ②:这一项也很关键,这是我们编译工具目录,路径选择不对安装也会失败。 
     然后我们点击右下角“install”进行安装: 
 

这里我们选择下载“ESP-IDF Tools”: 
 

 


安装完成后会出现如下提示: 
 


 
问题来了?我们知道 ESP32-S3 可以使用串口下载,那么它的串口波特率是多少呢?这里我们可在上图扩展设置中设置串口波特率,如下图所示: 
 

图 3.6.12 串口波特率设置 
安装 Espressif IDF 插件之后,按下快捷键“Ctrl+,”进入设置界面,在此界面下将设置以 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",                     /* 设置不自动更新*/ 

3.4 调试相关工具介绍 
经过前面的配置,我们已经完成了 VSCode 软件下开发 ESP32-S3 的环境搭建。下面我们重点来讲解 VS Code 软件提供用户调试相关的工具有哪些,如下所示: 
 

图 3.4.1 调试相关工具 
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,执行自定义任务:不使用 
13,工程的错误与警告提示 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JMeter的下载安装与使用(Mac)

1、下载地址​​​​​​https://jmeter.apache.org/download_jmeter.cgi 2、下载Binaries 下的apache-jmeter5.5.tgz 3、解压 4、启动 在bin目录下打开终端&#xff0c;输入sh jmeter 出现jmeter首页界面&#xff0c;即为成功。 5、使用 5.1 语言选择 option选项卡&am…

【Vue3+Tres 三维开发】01-HelloWord

预览 什么是TRESJS 简单的说,就是基于THREEJS封装的能在vue3中使用的一个组件,可以像使用组件的方式去创建场景和模型。优势就是可以快速创建场景和要素的添加,并且能很明确知道创景中的要素构成和结构。 项目创建 npx create-vite@latest # 选择 vue typescript安装依赖…

b站江科大stm32笔记(持续更新)

b站江科大stm32笔记&#xff08;持续更新&#xff09; 片上资源/外设引脚定义表启动配置推挽开漏oc/od 门漏极/集电极 电阻的上拉下拉输入捕获输入捕获通道主从触发模式输入捕获基本结构PWMI基本结构PWMPSC ARR CRR输入捕获模式测频率TIM_PrescalerConfig()初始化输入捕获测频法…

【MySQL】SQL优化

SQL优化 插入数据 insert 一次插入数据和批量插入数据 insert into tb_test (id, name) values (1,Tom); insert into tb_test (id, name) values (1,Tom),(2,Jack),(3,Jerry);优化方案&#xff1a; 手动控制事务&#xff0c;且按主键顺序插入。start transaction; insert …

【04-提升模型性能:集成学习与超参数优化】

文章目录 前言集成学习BaggingBoosting超参数优化随机搜索贝叶斯优化总结前言 在前几篇博文中,我们已经介绍了一些机器学习的基础知识、Scikit-learn的核心工具与技巧,以及如何评估模型性能。本篇博文将重点讲解两个可以显著提升机器学习模型性能的高级策略:集成学习和超参数…

制糖工业智能工厂数字孪生可视化平台,推进制糖产业数字化转型

制糖工业智能工厂数字孪生可视化平台&#xff0c;推进制糖产业数字化转型。随着信息技术的快速发展&#xff0c;数字化转型已成为各行各业的重要趋势。在糖果加工制造领域&#xff0c;智能工厂数字孪生可视化平台的出现&#xff0c;为行业数字化转型注入了新的活力。 糖果加工制…

STM32之HAL开发——ADC入门介绍

ADC简介 模数转换&#xff0c;即Analog-to-Digital Converter&#xff0c;常称ADC&#xff0c;是指将连续变量的模拟信号转换为离散的数字信号的器件&#xff0c;比如将模温度感器产生的电信号转为控制芯片能处理的数字信号0101&#xff0c;这样ADC就建立了模拟世界的传感器和…

WPF —— lCommand命令实例

首先在标签页面设置一个Button按钮 <Button Width"100" Height"40" Content"测试" ></Button> 1 创建一个类 继承于ICommand这个接口&#xff0c; 这个接口一般包含三部分&#xff1a; 俩个方法&#xff1a;一个判断指令是不是…

Ghost Buster Pro for Mac:强大的系统优化工具

Ghost Buster Pro for Mac是一款功能强大的系统优化工具&#xff0c;专为Mac用户设计&#xff0c;旨在提供全方位的系统清理、优化和维护服务。 Ghost Buster Pro for Mac v3.2.5激活版下载 这款软件拥有出色的垃圾清理能力&#xff0c;能够深度扫描并清除Mac上的无效目录、文件…

网工内推 | 云计算运维,厂商云相关认证优先,股票期权,全勤奖

01 国科科技 招聘岗位&#xff1a;云计算运维 职责描述&#xff1a; 1、负责私有云平台的运维管理工作,包括云平台日常运维、故障处理、扩容、版本升级、优化和维护等。 2、根据业务需求,从技术角度支持及配合各业务系统上云工作。 3、为云上业务系统提供云产品、云服务方面的…

【C++】---STL容器适配器之底层deque浅析

【C】---STL容器适配器之底层deque浅析 一、deque的使用二、deque的原理1、deque的结构2、deque的底层结构&#xff08;1&#xff09;deque的底层空间&#xff08;2&#xff09;deque如何支持随机访问、deque迭代器 3、deque的优缺点&#xff08;1&#xff09;deque的优势&…

SpringMVC基础篇(一)

文章目录 1.基本介绍1.特点2.SpringMVC跟SpringBoot的关系 2.快速入门1.需求分析2.图解3.环境搭建1.创建普通java工程2.添加web框架支持3.配置lib文件夹1.导入jar包2.Add as Library3.以后自动添加 4.配置tomcat1.配置上下文路径2.配置热加载 5.src下创建Spring配置文件applica…

报错The chromedriver version cannot be discovered以及下载chromedriver.exe和查看其版本的命令

python3.8.10&#xff0c;win10。 谷歌浏览器版本&#xff08;我写代码的时候还是123.0.x.x&#xff0c;没几天就自动更新到124.0.x.x了&#xff09;&#xff1a; 在使用selenium的时候&#xff0c;出现报错&#xff0c;The chromedriver version cannot be discovered。 &am…

Fast-DetectGPT 无需训练的快速文本检测

本文提出了一种新的文本检测方法 ——Fast-DetectGPT&#xff0c;无需训练&#xff0c;直接使用开源小语言模型检测各种大语言模型&#xff0c;如GPT等生成的文本内容。 Fast-DetectGPT 将检测速度提高了 340 倍&#xff0c;将检测准确率相对提升了 75%&#xff0c;超过商用系…

企业库存管理的数字化转型引擎

对于企业IT部门来说,库存管理一直是一项棘手且耗时的工作。从采购、入库到销售出库,整个库存管理流程都需要IT人员投入大量精力。但是,由于缺乏有效的信息化手段,企业往往难以实现对库存全生命周期的系统管控,导致了一系列难题: 传统库存管理面临的痛点 库存信息管理混乱 许多…

BUUCTF--web(2)

1、[HCTF 2018]admin1 打开题目后发现有注册和登录两个页面&#xff0c;因为题目提示admin&#xff0c;尝试用admin进行爆破 爆破得到密码为123 登录得到flag 2、[护网杯 2018]easy_tornado1 打开题目后有三个文件&#xff0c;分别打开查看 在url地址栏中发现包含两个参数&a…

分布式-知识体系

分布式系统 本质就是一堆机器的协同&#xff0c;要做的就是用各种手段来让机器的运行达到预期 分布式业务场景 分布式四纵四横说 基于 MSA&#xff08;微服务架构&#xff09;的分布式知识体系 相关概念 – 【摘自网络原文】 节点与网络 节点 传统的节点也就是一台单体的物…

go语言并发实战——日志收集系统(八) go语言操作etcd以及利用watch实现对键值的监控

有关包的安装 我们要实现go语言对第三方包的操作需要我们下载第三方包go.etcd.io&#xff0c;下载命令&#xff1a; go get go.etcd.io/etcd/client/v3 ectd的put与get操作 相关函数说明与示例 我们想实现对etcd进行简单的操作的步骤还是比较简单的&#xff0c;在我上一篇文…

【Hadoop3.3.6】数据块副本放置策略及解析EditLog和FsImage

目录 一、摘要二、正文2.1 环境说明2.2 网络拓扑2.3 Hadoop副本放置策略介绍2.4 解析EditLog和Fsimage镜像文件三、小结一、摘要 通过解析存储于NameNode节点上的日志文件EditLog和镜像文件(元数据)Fsimage来反向验证HDFS的数据块副本存放策略,其目的是希望加深对Hadoop的数…

Qt | 标准、复选、单选、工具、命令按钮大全

01、QPushButton QPushButton 类(标准按钮) 示例 3:默认按钮与自动默认按钮 02、QCheckBox QCheckBox 类(复选按钮) 1、复选按钮的第三状态(见右图 Qt5.10.1 的选中状态):是指除了选中 和未选中状态之外的第三种状态,这种状态用来指示“不变”,表 示用户既不选中也不取…