嵌入式物联网实战开发笔记-乐鑫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.mzph.cn/web/1492.shtml

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

相关文章

如何用JS校验HTTP和HTTPS地址

在日常开发过程中&#xff0c;我们有时候对某些应用功能进行封装&#xff0c;但是在请求接口又不能写死&#xff0c;这个时候我们需要对他进行多方面考虑。 如何验证请求地址是HTTP还是HTTPS 方法一&#xff1a; function getBaseUrl (string) {let url;try {url new URL(s…

大型网站系统架构演化实例_2.使用缓存改善网站性能

1.使用缓存改善网站性能 网站访问的特点和现实世界的财富分配一样遵循二八定律&#xff1a;80%的业务访问集中在20%的数据上。既然大部分业务访问集中在一小部分数据上&#xff0c;那么如果把这一小部分数据缓存在内存中&#xff0c;就可以减少数据库的访问压力&#xf…

【Python】自定义修改pip下载模块默认的安装路径

因为电脑下载了Anaconda提供的默认Python 3.9 以及后期下载的python3.10所以在Pychram进行项目开发时&#xff0c;发现一些库怎么导入都导入不了&#xff0c;手动install也是失败&#xff0c;后期在cmd里面发现python以及pip配置有点儿混乱&#xff0c;导致执行命令时&#xff…

基于SpringCloudAlibaba+Sentinel的分布式限流设计

胡弦&#xff0c;视频号2023年度优秀创作者&#xff0c;互联网大厂P8技术专家&#xff0c;Spring Cloud Alibaba微服务架构实战派(上下册)和RocketMQ消息中间件实战派(上下册)的作者&#xff0c;资深架构师&#xff0c;技术负责人&#xff0c;极客时间训练营讲师&#xff0c;四…

碳循环、人类、遥感之间的关联

1. 碳与碳循环 碳是自然界中很常见的一种元素&#xff0c;它以多种形式广泛存在于大气和地壳之中。碳单质很早就被人认识和利用&#xff0c;碳的一系列化合物——有机物是生命的根本。 1.1 自然界中的碳 地球上最大的两个碳库是岩石圈和化石燃料&#xff0c;含碳量约占…

小米K8s运维-云原生方向(面经分享)

大家好&#xff0c;我是秋意零。今天分享一篇小米运维面经。 小米K8s运维-云原生方向 一面 2024年4月3日 | 10点 | 一面 | 40 min 左右 1&#xff09;自我介绍 2&#xff09;你熟悉Python多一点吗&#xff1f;还熟悉其它语言吗&#xff0c;拿出来写过的&#xff1f; 3&am…

搜索引擎中的倒排索引是什么

在搜索引擎领域&#xff0c;倒排索引是一种核心数据结构&#xff0c;它让搜索引擎能够以极高的效率找到包含用户查询关键词的所有网页。为了理解倒排索引的工作原理&#xff0c;我们可以将其与一种更直观、生活化的例子相比较&#xff1a;书店里的索引卡片系统。 假设你是一位…

在RISC-V64架构的CV1811C开发板上应用perf工具进行多线程程序性能分析及火焰图调试

CV1811C环境编译 SDK目录结构 . ├── build // 编译目录,存放编译脚本以及各board差异化配置 ├── buildroot-2021.05 // buildroot开源工具 ├── freertos // freertos系统 ├── fsbl // fsbl启动固件,prebuilt形式存在…

K8s: 集群内Pod通信机制之环境变量

集群内Pod通信机制之环境变量 Kubernetes 支持两种基本的服务发现模式 —— 环境变量和 DNS 1 &#xff09; 环境变量概述 在Service里面通过label selector选择器去匹配到对应的pod然后把流量导给对应的pod进行这个service的一个服务提供也就是说你只要访问service的IP地址…

Android14 - WindowManagerService之客户端Activity布局

Android14 - WindowManagerService之客户端Activity布局 一、主要角色 WMS作为一个服务端&#xff0c;有多种客户端与其交互的场景。我们以常见的Activity为例&#xff1a; Activity&#xff1a;在ActivityThread构建一个Activity后&#xff0c;会调用其attach方法&#xff0c;…

【PyTorch】2-主要组成模块(数据读入、模型构建、损失函数、评价指标、训练和测试、优化器)

PyTorch&#xff1a;2-主要组成模块 注&#xff1a;所有资料来源且归属于thorough-pytorch(https://datawhalechina.github.io/thorough-pytorch/)&#xff0c;下文仅为学习记录 2.1&#xff1a;深度学习的必要部分 机器学习步骤 【1】数据预处理 【2】划分train、valid、…

人工智能底层自行实现篇3——逻辑回归(上)

3. 逻辑回归 1. 简介 逻辑回归&#xff08;Logistic Regression&#xff09;是一种广泛应用于分类问题的统计方法&#xff0c;尤其是二分类问题。虽然它的名称中包含“回归”&#xff0c;但实际上逻辑回归是一个用于估计概率的分类模型。以下是关于逻辑回归的详细介绍&#x…

[docker] volume 补充 环境变量 参数

[docker] volume 补充 & 环境变量 & 参数 这里补充一下 volume 剩下的内容&#xff0c;以及添加参数(ARG) 和 环境变量 ENV 的内容 read only volumes ❯ docker run-p 3000:80--rm--name feedback-app-v feedback:/app/feedback-v "$(pwd):/app"-v /app/…

gcc头文件默认搜索路径

0. 一些小的注意点 #include <> 是系统搜索头文件 #include "" 是本地搜索路径 gcc -I /dir-to-path -I选项可以指定头文件搜索路径 1. 解决 可以使用cpp查看cpp搜索路径 cpp -v /dev/null -o /dev/null另外一种方法直接使用gcc gcc -print-prog-namecc1p…

【C++初阶】vector使用特性 vector模拟实现

1.vector的介绍及其使用 1.1 vector的介绍 vector文档介绍 1. vector是表示可变大小数组的序列容器。 2. 就像数组一样&#xff0c;vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问&#xff0c;和数组一样高效。但是又不像数组&#…

第24天:安全开发-PHP应用文件管理模块显示上传黑白名单类型过滤访问控制

第二十四天 一、PHP文件管理-显示&上传功能实现 如果被抓包抓到数据包&#xff0c;并修改Content-Type内容 则也可以绕过筛查 正常进行上传和下载 二、文件上传-$_FILES&过滤机制实现 无过滤机制 黑名单过滤机制 使用 explode 函数通过点号分割文件名&#xff0c;…

VTC视频时序控制器原理以及Verilog实现

文章目录 一、前言二、视频时序控制原理三、Verilog实现3.1 代码3.2 仿真以及分析 一、前言 VTC&#xff08;Video Timing Controller&#xff09;是一种用于产生视频时序的控制器&#xff0c;在FPGA图像领域经常用到。Xilinx Vivado 也有专门用于生成视频时序的 IP&#xff0c…

webpack-babel2

浏览器的兼容性问题 浏览器的兼容性问题不知包括随屏幕大小而变化&#xff0c;还包括针对浏览器支持的特性&#xff08;如css特性&#xff0c;js特性&#xff09; 做处理。 目前市场上有很多浏览器&#xff1a;Chrome,Safari,IE,Edge等&#xff0c;要根据它们的市场占有率来决…

【onnx 模型推理加速】如何验证 onnxruntime-gpu 版本 安装成功

首先安装gpu 版本的onnx 包 pip install onnxruntime-gpu要验证onnxruntime-gpu版本是否安装成功&#xff0c;并且GPU加速功能正常&#xff0c;你可以执行以下步骤&#xff1a; 检查安装的ONNX Runtime版本&#xff1a; 首先&#xff0c;你可以检查安装的ONNX Runtime版本&am…

vue 对axios二次封装,配置api层,基于mock测试数据

一、初始化环境&#xff08;默认都会安装vue3项目ts&#xff09; 安装mock&#xff1a;全局安装 # 使用 npm 安装 npm install mockjs vite-plugin-mock # 使用 yarn 安装 yarn add mockjs vite-plugin-mock 二、进行配置 在vite.config.ts中进行配置 import { UserConfigEx…