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

news2024/11/15 18:03:46

乐鑫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.coloradmin.cn/o/1622150.html

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

相关文章

云计算时代,企业面临的云安全风险

如今&#xff0c;随着云计算等新兴科技的发展&#xff0c;不同类型企业间的关联越来越多&#xff0c;它们之间的业务边界已被打破&#xff0c;企业上云成为了大势所趋。云计算应用帮助企业改变了IT资源不集中的状况&#xff0c;同时&#xff0c;数据中心内存储的大量数据信息&a…

R语言使用sjPlot包优雅绘制回归模型的交互效应图

交互作用效应(p for Interaction)在SCI文章中可以算是一个必杀技&#xff0c;几乎在高分的SCI中必出现&#xff0c;因为把人群分为亚组后再进行统计可以增强文章结果的可靠性&#xff0c;进行可视化后可以清晰的表明变量之间的关系。不仅如此&#xff0c;交互作用还可以使用来进…

劳保工具佩戴监测识别摄像机

随着工业生产技术的不断进步和劳动保护意识的提高&#xff0c;劳保工具的佩戴已成为维护工人安全健康的重要环节。为了更好地监测和识别工人是否正确佩戴劳保工具&#xff0c;以及工作场所是否存在安全隐患&#xff0c;智能劳保工具佩戴监测识别摄像机应运而生。这种摄像机结合…

GoLand远程开发IDE:使用SSH远程连接服务器进行云端编程

目录 ⛳️推荐 1. 安装配置GoLand 2. 服务器开启SSH服务 3. GoLand本地服务器远程连接测试 4. 安装cpolar内网穿透远程访问服务器端 4.1 服务器端安装cpolar 4.2 创建远程连接公网地址 5. 使用固定TCP地址远程开发 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站&am…

C语言 | Leetcode C语言题解之第49题字母异位词分组

题目&#xff1a; 题解&#xff1a; /*1.将字符串原串与副本进行绑定成一个节点2.对字符串副本进行按ascii码表进行从小到大排序3.按照字符串进行比较排序4.合并 */ typedef struct Node{char*s;char*s_vice;int len; }Node;void sortShellChar(char*s,int len){for(int dista…

推荐3个视频转文字的工具

如果是长视频转文字的话&#xff0c;我会推荐你三个专业的能够将视频文字提取出来的工具&#xff0c;操作无门槛&#xff0c;转换出的文字准确率高&#xff0c;可以直接导出文字。 1.一键识别王 https://www.xunjiepdf.com/yijianshibiewang 专业的图片文字识别软件&#xff0…

依赖型人格的症状和起因,依赖型人格测试和应对方法

每个人的性格不同&#xff0c;对待同一件事的处理方式也不一样&#xff0c;很多人在独自面对某些事情的时候&#xff0c;会有非常明显的无助感和孤独感&#xff0c;他们没办法照顾自己&#xff0c;也无法独立作出决定&#xff0c;只能依赖别人。 这种过度依赖的特质就是依赖型…

LT8711UXD助力新款Swtich游戏机底座《4K/60HZ投屏方案》

Nintendo Switch&#xff08;OLED版&#xff09;正面搭载了一块分辨率为720P的7.0英寸OLED屏幕&#xff1b;具有白色和电光蓝电光红2种颜色&#xff1b;机身长度102毫米&#xff0c;宽度242毫米&#xff0c;厚度13.9毫米&#xff0c;重量约420克。 [2]Nintendo Switch&#xff…

《架构风清扬-Java面试系列第26讲》聊聊的LinkedBlockingQueue的特点及使用场景

LinkedBlockingQueue也是BlockingQueue接口的一个实现类之一 这个属于基础性问题&#xff0c;老规矩&#xff0c;我们将从使用场景和代码示例来进行讲解 来&#xff0c;思考片刻&#xff0c;给出你的答案 1&#xff0c;使用场景 实现&#xff1a;基于链表实现的阻塞队列&#…

后端工程师——Java工程师面试小结

在国内,Java 程序员是后端开发工程师中最大的一部分群体,其市场需求量也是居高不下,C++ 程序员也是热门岗位之一,此二者的比较也常是热点话题,例如新学者常困惑的问题之一 —— 后端开发学 Java 好还是学 C++ 好。读完本文后,我们可以从自身情况、未来的发展,岗位需求量…

Windows安装Elasticsearch 7.9.2

1 下载 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-windows-x86_64.zip 2 配置 进入config目录&#xff0c;打开elasticsearch.yml文件&#xff0c;给集群和节点配置名称。 cluster.name: my-es node.name: node-1 3 启动 打开bin目录&am…

​第三方支付方式有哪些?

​第三方支付方式有哪些&#xff1f; 编辑搜图 请点击输入图片描述&#xff08;最多18字&#xff09; 随着电子商务和移动互联网的快速发展&#xff0c;第三方支付方式已经成为我们生活中不可或缺的一部分。这些支付方式不仅为我们提供了方便快捷的交易途径&#xff0c;还在保…

iOS - 多线程-atomic

文章目录 iOS - 多线程-atomic1. 源码分析1.1 get方法1.2 set方法 2. 一般不使用atomic的原因 iOS - 多线程-atomic atomic用于保证属性setter、getter的原子性操作&#xff0c;相当于在getter和setter内部加了线程同步的锁可以参考源码objc4的objc-accessors.mm它并不能保证使…

为AI电脑生态注入强悍动力,安耐美PlatiGemini 1200W高性能电源

在DIY攒机的过程中&#xff0c;电源是非常重要的一环&#xff0c;现在高性能的硬件功耗往往很高&#xff0c;因此一款优秀的电源整个系统稳定运行的基石。最近&#xff0c;我发现一款由安耐美&#xff08;Enermax&#xff09;推出的PlatiGemini 1200W电源&#xff0c;它不仅满足…

报错import build constraints exclude all Go files in

好久没用fyne突然报错 报错import ...go-gl.. build constraints exclude all Go files in go-gl .. 检查gcc --version正常输出 检查gcc版本正常&#xff0c;路径正常。 尝试解决的方法&#xff0c; 1.重新安装依赖&#xff0c;不行 2.重新配置下载地址&#xff0c;不…

警惕高薪诱惑,跳槽前必看的真相

在职场中&#xff0c;高薪常常被看做是衡量一份工作价值的标尺。不少求职者和职场人士在面对职业选择时&#xff0c;会将薪资待遇作为重要甚至决定性的参考因素。然而&#xff0c;盲目追求高薪而轻易跳槽&#xff0c;并非总是明智之举。今天&#xff0c;我们就来探讨一下为何“…

【Vue】自定义事件实现组件之间的通信(案例讲解)

一、前言 这是部分哔哩哔哩上跟着一个博主【遇见狂神说】学习的&#xff0c;当然自己也是才开始学习的vue&#xff0c;在学到这个Vue的自定义事件的时候&#xff0c;虽然知识点很绕&#xff0c;但是在理解后又觉得很意思&#xff0c;觉得Vue真的很强大。这里博主将自己学习到的…

车载电子电器架构 —— 功能安全开发(首篇)

车载电子电器架构 —— 功能安全开发 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己…

【后端】git与python的结合使用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、git介绍二、git常见使用三、git与python的结合使用四、总结 前言 随着开发语言及人工智能工具的普及&#xff0c;使得越来越多的人会主动学习使用一些开发…

【3GPP】【核心网】【5G】5G核心网协议解析(四)(超详细)

1. 欢迎大家订阅和关注&#xff0c;精讲3GPP通信协议&#xff08;2G/3G/4G/5G/IMS&#xff09;知识点&#xff0c;专栏会持续更新中.....敬请期待&#xff01; 目录 1. NGAP 按流程功能分类 1.1 接口管理过程 1.1.1 NG Setup 1.2.1 NAS消息传输过程 Transport of NAS Messa…