如何在VSCode搭建ESP-IDF开发ESP32

文章目录

    • 概要
    • 安装VScode
    • 安装ESP-IDF插件
    • 使用官方例程
    • 小结

概要

ESP-IDF(Espressif IoT Development Framework) 即乐鑫物联网开发框架,它基于 C/C++ 语言提供了一个自给自足的 SDK,可为在 Windows、Linux 和 macOS 系统平台上开发 ESP32 应用程序提供工具链、API、组件和工作流程的支持。
ESP-IDF 集成了大量的软件组件,包括 RTOS、外设驱动程序、网络栈、多种协议实现技术以及常见应用程序的使用助手。它提供了典型应用程序所需的大部分构建块,用户在开发应用时只需专注于业务逻辑即可。 ESP-IDF 不仅具有免费开源的开发工具,还支持 EclipseVSCode 等 IDE,确保其易于开发人员使用。
在这里插入图片描述
ESP-IDF 提供详尽的软件组件使用和设计文档,有助于开发人员充分理解 ESP-IDF 功能,并从中挑选最适合构建其应用程序的模块。ESP-IDF 包含 100 多个示例,详细说明了其组件及硬件外设的功能和用法。它们经过了严格的测试和维护,是用户开启应用开发的有效参考。
在这里插入图片描述

安装VScode

1.打开VSCode官网的下载页面,选择自己电脑对应系统和系统位数进行下载
在这里插入图片描述
2.运行安装包后,其余均可以默认安装,但这里为了后续的体验建议,建议在此处勾选框中的1、2、3项
在这里插入图片描述
第一二项开启后,可以直接通过鼠标右键文件或者目录打开VSCode,可以提高后续的使用体验.
第三项开启后,选择打开方式时,可以直接选择VSCode

安装ESP-IDF插件

1.打开VSCode,使用快捷键Shift+Ctrl+X,进入插件管理器
2.在搜索栏中,输入Espressif IDF,选择对应的插件点击 install即可
在这里插入图片描述
3.使用快捷键F1,输入esp-idf: configure esp-idf extension
在这里插入图片描述
4.选择express
在这里插入图片描述
5.打开后显示该界面
在这里插入图片描述
6.选择下载服务器,推荐国内用户使用Espressif
在这里插入图片描述
7.选择ESP-IDF版本,选择最新的V5.0.1(注意ESP-IDF从V4.4版本后才开始支持ESP32-S3)
在这里插入图片描述
8.下面两个分别为ESP-IDF容器安装地址和ESP-IDF所需的工具安装地址,注意:如果之前有安装过ESP-IDF,或者失败过的,请务必彻底删除文件或者创建全新的无中文路径
在这里插入图片描述
9.配置完成后,点击 install 进行下载
在这里插入图片描述
10.进入下载页面,其会自动安装对应工具与环境,稍等片刻即可,安装完成后,会进入以下界面,说明安装完成
在这里插入图片描述

使用官方例程

ESP官方为我们提供大量的例程,详细使用请打开ESP-IDF 编程指南
创建例程:
1.使用快捷键F1,输入esp-idf:show examples projects
在这里插入图片描述2.选择你当前的IDF版本
在这里插入图片描述
3.以Hello world例程为例
在这里插入图片描述
4.①选择对应例程
5.②其readme会说明该例程适用于什么芯片(下文有介绍例程怎么使用与文件结构,这里略)
6.③点击创建例程
7.选择放置例程的路径,要求无例程同名文件夹
修改COM口
1.此处显示使用对应的COM口,点击可以修改对应COM口
在这里插入图片描述
2.提前安装好自己的ESP32开发板的USB转串口驱动,请根据自己ESP32开发板选择对应的COM口
在这里插入图片描述

3.选择使用的工程或者例程
在这里插入图片描述
4.然后我们的COM口就修改好了
修改驱动对象
1.此处显示的是使用的驱动对象,点击可以修改对应驱动对象
在这里插入图片描述
2.选择使用的工程或者例程
在这里插入图片描述
3.点击后需要稍等片刻
在这里插入图片描述
4.选择我们需要驱动的对象,也就是我们的开发板主芯片,这里使用的是ESP32S3
在这里插入图片描述
5.选择openocd的路径,这里对我们没有影响,所以我们随便选择一个即可
在这里插入图片描述
其余状态栏简介
在这里插入图片描述
①SDK 配置编辑器,ESP-IDF很多功能与配置可以在其内修改
②全部清理,清空所有编译文件,
③编译
④当前下载方式,默认为UART
⑤烧录当前固件,请在编译后进行
⑥打开串口监视器,用于查看串口信息
⑦编译,烧录,打开串口监视器 一体按键(调试时最常用)
编译、烧录、串口监视
1.根据自己的开饭硬件设置使开发板处于串口下载模式,有些开发版有自动下载功能不需要进行什么设置,再点击我们之前介绍的 编译,烧录,打开串口监视器一体按键
在这里插入图片描述
2.编译可能需要较长时间才能完成,尤其是在第一次编译时。
3.在此过程中,ESP-IDF可能会占用大量CPU资源,因此可能会导致系统卡顿。
4.下载成功后,自动进入串口监视器,可以看到芯片输出对应的信息并提示10S后重启。
在这里插入图片描述

小结

至此我们完成了VScode上通过安装ESP-IDF插件进行ESP32的开发,VScode上还可以通过安装PlatformiIO插件进行ESP32的开发,当然ESP-IDF也可单独安装在Windows系统开发ESP32。

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

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

相关文章

跳跃表原理及实现

一、跳表数据结构 跳表是有序表的一种,其底层是通过链表实现的。链表的特点是插入删除效率高,但是查找节点效率很低,最坏的时间复杂度是O(N),那么跳表就是解决这一痛点而生的。 为了提高查询效率,我们可以给链表加上索…

天翼云云间高速实现租户跨地域内网互通

一、业务需求 用户业务在襄阳、武汉两个云池部署,希望通过云间高速产品将两个资源池云内资源通过云内专网实现内网互通。要求内网双向互通。 二、测试环境配置 云池vpc名称vpc网段子网内网ip/gweip主机名互联网带宽襄阳ceshi192.168.0.0/16192.168.1.0/24192.168.…

unity学习笔记----游戏练习02

一、阳光值的展示和消耗 1.创建一个文本组件用于显示阳光的数值,然后在脚本中得到这个UI。 在SunManger中得到这个组件的引用 public TextMeshProUGUI sunPointText; 写一个用于更新显示的方法 public void UpdataSunPointText() { sunPointText.tex…

FileZilla的使用主动模式与被动模式

🎬 艳艳耶✌️:个人主页 🔥 个人专栏 :《产品经理如何画泳道图&流程图》 ⛺️ 越努力 ,越幸运 目录 一、FileZilla简介 1、FileZilla是什么? 2、FileZilla的应用场景 二、FileZilla的安装 1、下…

JVM篇:JVM内存结构

程序计数器 程序计数器英文名叫:Program Counter Register 作用:用来记录下一条jvm指令的地址行号。 先来查看一段jvm指令,这些指令对应的java代码就是输出1-5 操作系统运行该Java程序时具体流程如下 语言解释:源文件通过编译转…

光伏逆变器MPPT的作用、原理及算法

MPPT是逆变器非常核心的技术,MPPT电压在进行光伏电站设计时一项非常关键的参数。 一、什么是MPPT? (单块光伏组件的I-V、P-V曲线) 上图中,光伏组件的输出电压和电流遵循I-V曲线(绿色)、P-V曲线(蓝色),如果…

NVMe over Fabrics:概念、应用和实现

对于大部分人来说,NVMe over Fabrics(简称NVMf)还是个新东西,因为其第一个正式版本的协议在今年6月份才发布。但是这并不影响人们对NVMf的关注,因为这项依托于NVMe的技术很可能继续改变存储市场格局。 NVMf的贡献在于…

labuladong日常刷题-双指针 | LeetCode 83删除排序链表中的重复元素 5最长回文子串

双指针操作链表与字符串 LeetCode 83 删除排序链表中的重复元素 2023.12.28 题目链接labuladong讲解[链接] ListNode* deleteDuplicates(ListNode* head) {/*暴力求解ListNode* cur new ListNode();ListNode* prenode cur;cur->next head;cur cur->next;while(cu…

web自动化(4)——POM设计重构

1. 什么是POM Page Object Model 是ui自动化测试中常见的封装方式。 原理:将页面封装为PO对象,然后通过面向对象的方式实现UI自动化 2. 封装原则 PO无需包含全部UI元素PO应当验证元素PO不应该包含断言PO不应该暴露元素 3. 怎么进行POM封装 面向对象…

架构设计系列 5:常见架构介绍

前面讲了架构是什么,架构的发展史,架构设计的基础理论,这次针对常见架构设计风格进行介绍和分析。 一、MVC:三层架构经典 经典的 MVC 架构(Model-View-Controller)架构是软件系统架构设计中的经典&#xf…

数据结构与算法教程,数据结构C语言版教程!(第二部分、线性表详解:数据结构线性表10分钟入门)一

第二部分、线性表详解:数据结构线性表10分钟入门 线性表,数据结构中最简单的一种存储结构,专门用于存储逻辑关系为"一对一"的数据。 线性表,基于数据在实际物理空间中的存储状态,又可细分为顺序表&#xff…

NFC物联网构建移动智能仓储系统解决方案

仓储管理作为企业研发生产活动的重要环节,正朝着标准化、信息化方向发展。高新作为典型的资产密集 技术密集型企业,原料样品为代表的资产数量巨大品种繁杂,对仓库管理的实时性及准确性要求较高。传统的人工作业模式和管理方法逐渐难以满足仓储管理对高效…

【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(4)-自制数据集及训练(使用makesense标注数据集)

如何制作和训练自己的数据集 看yolov5官网创建数据集1.搜索需要的图片2.创建标签标注数据集地址:放入图片后选择目标检测创建文档,每个标签写在单独的一行上传结果此处可以编辑类别把车框选选择类别即可导出数据 3.新建一个目录放数据写yaml文件 4. 测试…

【赠书第14期】AI短视频制作一本通:文本生成视频+图片生成视频+视频生成视频

文章目录 前言 1 前期准备 2 拍摄与录制 3 后期编辑 4 技巧与注意事项 5 推荐图书 6 粉丝福利 前言 随着智能技术的迅猛发展,AI 短视频制作成为了一种新兴而创新的表达方式,广泛应用于社交媒体、广告营销、教育培训等领域。本文将介绍 AI 短视频…

JavaScript介绍,特点及组成(详解)

✨前言✨   本章将介绍 JavaScript 的基本概念、编写方法,并带领大家编写第一个 avaScript 程序。 🍒欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍒博主将持续更新学习记录收获,友友们有任何…

垃圾收集器与内存分配策略

内存分配和回收原则 对象优先在Eden区分配 大对象直接进入老年代 长期存活的对象进入老年代 什么是内存泄漏 不再使用的对象在系统中未被回收,内存泄漏的积累可能会导致内存溢出 自动垃圾回收与手动垃圾回收 自动垃圾回收:由虚拟机来自动回收对象…

什么是高并发系统?

1.1 什么是高并发? 高并发(High Concurrency),通常是指通过设计保证系统能够同时处理很多请求。即在同一个时间点,有很多的请求同时访问同一个接口。高并发意味着大流量,需要运用技术手段去抵抗这种大流量…

用通俗易懂的方式讲解大模型:Prompt 提示词在开发中的使用

OpenAI 的 ChatGPT 是一种领先的人工智能模型,它以其出色的语言理解和生成能力,为我们提供了一种全新的与机器交流的方式。但不是每个问题都可以得到令人满意的答案,如果想得到你所要的回答就要构建好你的提示词 Prompt。本文将探讨 Prompt 提…

yolov5旋转目标检测-遥感图像检测-无人机旋转目标检测-附代码和原理

综述 为了解决旋转目标检测问题,研究者们提出了多种方法和算法。以下是一些常见的旋转目标检测方法: 基于滑动窗口的方法:在图像上以不同的尺度和角度滑动窗口,通过分类器判断窗口中是否存在目标。这种方法简单直观,…

Flutter 三点二:Dart 异步 async 和 await

async 和 await Future 链式调用 更清晰异步操作依赖关系比较复杂 可使用async awaitasync await 调用逻辑更清晰async await 异常处理 try{}catch(){} 即可async 修饰的方法 总是返回Future对象 不会阻塞主线程await 关键字只有在async修饰的方法内才有效都是把事件交给 Even…