当前位置: 首页 > news >正文

【ESP32S3】VSCode 开发环境搭建

ESP32S3 有多种开发方式,主流的有 Eclipse 和 VSCode 两种。本文来介绍一下基于 VSCode 的开发环境搭建。

VSCode 环境需要依赖于 ESP-IDF 插件,因此需要在 VSCode 插件市场中搜索并安装 ESP-IDF 插件:

图片

安装完成后侧边栏会多出一个 ESP-IDF 标志,点开后可以看到左侧的导航视窗中包含了开发 ESP32 的所有工具:

图片

这些工具从上到下依次为:

  • COMMANDS:命令集,其中包含了我们开发过程中要用到的大部分核心指令,包括插件配置、工程编译、固件下载等等,因此也是最常用的类目。

  • DOCUMENTATION SEARCH RESULTS:文档查询结果,可以在代码文件中选中一段文字并调用 Search in Documentation 在文档中进行查询。

  • DEVICE PARTITION EXPLORER:设备分区查看器,列举出当前连接设备中的分区表以查看。

  • APPLICATION TRACER:应用程序追踪,可以结合内置的代码追踪模块对整个应用程序的运行进行记录。

  • APPLICATION TRACER ARCHIVES:追踪文件存档,可以看到程序追踪的数据文件。

  • RAINMAKER:连接 ESP RainMaker 平台。

  • EFUSEEXPLORER:eFuse 操作。

由于本文重点在于开发环境的搭建,因此不会对上述工具进行详细探究,目前也只需要大概了解其概念即可。具体每个工具及其子工具的用法会在后续的实践操作中体现。

安装好插件后我们需要对该插件进行配置及工具链的安装,点击 COMMANDS 栏目下的 Configure ESP-IDF Extension 按钮:

图片

此时右侧主窗口会显示插件配置界面,这里存在三个选项:

  • EXPRESS:快速安装。

  • ADVANCED:进阶安装,可以自定义配置更多信息。

  • USE EXISTING SETUP:查找系统中已存在的 ESP-IDF 工具链。

初次安装我们选择第一个即可。点击 EXPRESS 后我们进入到详细安装界面:

图片

里面可以对下载服务器,ESP-IDF 版本、ESP 源码路径以及 ESP 工具链路径进行配置,如果是在国内下载推荐使用 Espressif 服务器,版本如果没有特定要求就下载最新的发布(release)版即可,路径按照需要自行配置。都配置完后即可点击右下角的 Install 按钮进行工具链的安装:

图片

此时会进入下载进度界面,等待下载安装完成即可。安装完成后,我们就可以创建第一个例程了。点击 COMMADNS 栏目下的 New Project Wizard 按钮进入新项目创建向导:

图片

其中需要输入项目名、项目路径、ESP 板子的型号和连接方式以及连接串口号,最后一个条目是 ESP-IDF 组件路径,可以不填,使用默认的即可。都配置好后点击右下角的 Choose Template 选择要创建的例程,这里我就选择最基本的 blink 例程,也就是点灯例程:

图片

按照上图的操作顺序依次选择好例程最后点击 Create project using template blink 即可完成创建。

图片

创建完成后右下角会弹出交互框,告诉你工程已经创建好,是否打开新窗口,这里选择 Yes 即可自动打开新工程的工作空间,当然你也可以自行到新工程的目录下去打开。

新工程打开后我们需要先对其进行配置,首先选择芯片型号,点击 COMMANDS 下的 Set Espressif Target:

图片

我是使用的 ESP32S3,因此选择 esp32s3 选项,接着会跳出连接方式选择,我使用的是 USB-JTAG,自然也是选择 USB-JTAG 作为连接方式:

图片

选择好芯片后还需对 SDK 和例程进行配置,如 LED 的引脚号和工作模式等,此时点击 COMMANDS 下的 SDK Configuration Editor 也就是 menuconfig:

图片

根据上图选择 Example Configuration,然后在右边的配置框中输入自己板子上所对应的信息。比如我的开发板 LED 是普通 GPIO 驱动,引脚号为48,闪烁周期为 1000 毫秒,按上述参数填入后点击 Save 保存配置,此时这个工程就配置好了。

接下来我们就可以进行编译了,点击 COMMANDS 下的 Build 进入编译环节,此时在下方的终端中会显示编译详情:

图片

编译好后下方会弹出 Build Successfully 的提示:

图片

此时我们就可以进行固件烧录环节了,不过在正式烧录前还需要配置一下串口号,点击 COMMANDS 下的 Select Serial Port 按钮,并在弹出的串口选择框中选择板子所连接的串口:

图片

我的板子连接的是 COM24,因此这里我选择 COM24。到这里,就可以正式进行烧录了,点击 COMMANDS 下的 Flash 按钮:

图片

此时上方会弹出烧录方式选择栏,我使用的是 JTAG,因此就选择 JTAG。选择好后又会弹出一个 OpenOCD 的提示框,由于 ESP 是使用 OpenOCD 来进行调试和下载,因此如果没有启动 OpenOCD 的话会提示你是否启用,这里选择 Yes 即可。

图片

下载完成后右下方会弹出 Flashed Successfully 提示,表示固件烧录成功:

图片

至此代码就在板子上运行起来了,整个开发环境也搭建完成。

图片

相关文章:

【ESP32S3】VSCode 开发环境搭建

ESP32S3 有多种开发方式,主流的有 Eclipse 和 VSCode 两种。本文来介绍一下基于 VSCode 的开发环境搭建。 VSCode 环境需要依赖于 ESP-IDF 插件,因此需要在 VSCode 插件市场中搜索并安装 ESP-IDF 插件: 安装完成后侧边栏会多出一个 ESP-IDF …...

大模型,多模态大模型面试问题基础记录24/10/24

大模型,多模态大模型面试问题基础记录24/10/24 问题一:LoRA是用在节省资源的场景下,那么LoRA具体是节省了内存带宽还是显存呢?问题二:假如用pytorch完成一个分类任务,那么具体的流程是怎么样的?…...

使用TimeShift备份和恢复Ubuntu Linux

您是否曾经想过如何备份和恢复您的Ubuntu或Debian系统?TimeShift是一个强大的备份和还原工具。TimeShift允许您创建系统快照,提供了一种在出现意外问题或系统故障时恢复到先前状态的简便方式。您可以使用RSYNC或BTRFS创建快照。 有了这个介绍&#xff0…...

win7现在还能用吗_哪些配置的电脑还可以安装win7系统

2024年了都,win7现在还能用吗?答案是肯定的。那么哪些配置的电脑还可以安装win7系统呢?下面就针对这两个问题详细分区。 win7现在还能用吗? Windows 7系统虽然已经停止官方支持,但仍然可以使用。以下是关于Windows 7系…...

基于GPT的智能客服落地实践

📍前言 在日常生活中,「客服」这个角色几乎贯穿着我们生活的方方面面。比如,淘宝买东西时,需要客服帮你解答疑惑。快递丢失时,需要客服帮忙找回。报名参加培训课程时,需要客服帮忙解答更适合的课程…… 基…...

Sourcetree和GitLab的结合使用

一、写在前面 为什么是Sourcetree和GitLab?因为遇到的坑最少,在不用梯子的情况下,推送速度还可以。 这篇文章主要介绍的是,怎么把自己写的代码文件打包放到GitLab上去,方便别人下载使用,也方便自己在另一…...

双十一开启极速达夜派;黑神话获泰国年度最佳游戏;AI 模型可帮助识别 17000 多种疾病的候选药物....| 网易数智日报

双 11 菜鸟在北京、上海、广州、杭州等城市开启「预售极速达夜派」服务 10 月 21 日,菜鸟在北京、上海、广州、杭州等城市开启「预售极速达夜派」服务,批量大促包裹实现小时级送达。 据介绍,在消费者支付尾款前,菜鸟供应链就已经…...

深入理解JAVA虚拟机(一)

介绍JAVA虚拟机的运行时数据区域 按照物理结构来划分:java虚拟机主要由以下几部分构成栈、堆和程序计数器,其中栈又可以分为虚拟机栈VM stack 和 本地方法栈 Native Method Statck,堆可以划分方法区和普通的堆内存。按照逻辑划分线程私有空间…...

从Excel文件中读取数据

笔记 import openpyxl # 打开工作簿 workbookopenpyxl.load_workbook(景区天气.xlsx) # 选择要操作的工作表 sheetworkbook[景区天气] # 表格数据是二维列表,先遍历的是行,后遍历的是列 lst[] # 存储的是行数据 for row in sheet.rows:sublst[] # 存储单…...

深入剖析MySQL的索引机制及其选型

在数据库管理系统中,索引是一种重要的优化工具,用于加速数据的检索和查询处理。在MySQL中,合理使用索引可以显著提高数据库的性能。本文将深入探讨MySQL的索引机制,包括不同类型索引的优势、劣势及在实际使用中的选型策略。 1. 什…...

校园表白墙源码修复版

此校园表白墙源码基于thinkphp,因为时代久远有不少bug,经本人修复已去除大部分bug,添加了美化元素。 https://pan.quark.cn/s/1f9b3564c84b https://pan.baidu.com/s/1bb9vu9VV2jJoo9-GF6W3xw?pwd7293 https://caiyun.139.com/m/i?2hoTc…...

Android 内存优化——常见内存泄露及优化方案

看到了一篇关于内存泄漏的文章后,就想着分享给大家,最后一起学习,一起进步: 如果一个无用对象(不需要再使用的对象)仍然被其他对象持有引用,造成该对象无法被系统回收,以致该对象在…...

Qt6.7.2中使用OpenSSL的坑

最近编写Qt Quick项目,使用Qt6.7.2版本,CMAKE编译,开始QtCreator运行代码都没有问题,访问https也正常,但打出安装包后一试,发现https访问不了,尴尬!! 查看了相关日志发现…...

Mybatis-08.基础操作-删除

一.删除 接口方法 package com.gjw.mapper;import com.gjw.pojo.Emp; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper;import java.util.List;Mapper public interface EmpMapper {// 根据ID删除数据Delete("delete from e…...

通过FDM升级Firepower

1.基本说明 本文主要主要介绍如何通过FDM来升级Firepower设备,这里以FPR1010设备为例,那么什么事Firepower、FDM呢?在开始之前,进行简单的介绍。 Firepower:思科 Firepower 是网络安全和流量管理产品的集成套件&…...

使用 Kibana 将地理空间数据导入 Elasticsearch 以供 ES|QL 使用

作者:来自 Elastic Craig Taverner 如何使用 Kibana 和 csv 采集处理器将地理空间数据采集到 Elasticsearch 中,以便在 Elasticsearch 查询语言 (ES|QL) 中进行搜索。Elasticsearch 具有强大的地理空间搜索功能,现在 ES|QL 也具备这些功能&am…...

demo说明

代码说明 MDIO总线的注册和初始化:分配并注册MDIO总线,用于与PHY设备通信。 网络设备的创建:分配网络设备(如以太网接口)。 PHY设备连接:通过phy_connect函数连接PHY设备,指定回调函数my_adj…...

【c++篇】:从基础到实践--c++内存管理技巧与模版编程基础

✨感谢您阅读本篇文章,文章内容是个人学习笔记的整理,如果哪里有误的话还请您指正噢✨ ✨个人主页:余辉zmh–CSDN博客 ✨ 文章所属专栏:c篇–CSDN博客 文章目录 前言一.c/c内存分布二.c/c的动态内存管理方式2.1.c语言的动态内存管…...

如何减小 Maven 项目生成的 JAR 包体积 提升运维效率

在使用 Maven 构建 Java 项目时,有时需要减小生成的 JAR 包的体积,以提高部署效率或减少资源消耗。以下是一些有效的方法来减小 JAR 包的体积: 排除不必要的依赖打包时,依赖jar包独立于应用jar包 1. 排除不必要的依赖 通过排除项目…...

Python自动化会议记录与摘要生成

前言 在现代工作环境中,会议是团队沟通和决策的重要方式。然而,整理会议记录和生成摘要往往是一项耗时且容易出错的任务。幸运的是,借助Python编程语言以及一些强大的库,我们可以自动化这一过程,让机器帮助我们完成这…...

SwiftUI 中 List 或 Form 子视图关联的 swipeAction 导致展开动画异常的解决

问题现象 小伙伴们都知道,在 SwiftUI 中更快捷的增强 List 或 Form 子视图(Cell)交互功能的方法是使用 swipeAction 修改器。不过,对其使用稍有不慎也会横生枝节。 如上图所示,不适当的设置 Cell 视图布局会使 swipeAction 无法生成正确的收缩和展开动画。对此我们有什么…...

Apache Paimon Catalog

Paimon Catalog可以持久化元数据,当前支持两种类型的metastore: 文件系统(默认):将元数据和表文件存储在文件系统中。hive:在 hive metastore中存储元数据。用户可以直接从 Hive 访问表。 2.2.1 文件系统…...

C++基础:三个字符串也能搞大小?

上一篇说了三个整数比较大小,按照顺序输入的,这次我们看看字符串的,顺便把那个简化以下: 题目:这次输入三个字符串。如果用户输入“Stenbeck", “Hemingway”,“Fitzgerald”,输出将是“Fitzgerald,Hemingway&…...

了解AIGC——自然语言处理与生成

AIGC——自然语言处理与生成:揭秘AI如何生成语言 近年来,AIGC(AI Generated Content)技术迅猛发展,自然语言处理(Natural Language Processing, NLP)与生成技术的结合,使得机器不仅…...

Modern CMake 简明教程(8)- 集成Qt

在项目中集成 Qt 库需要先使用 find_package 查找 Qt 的安装位置。对于 Qt4, CMake 使用 Module 模式进行查找(FindQt4.cmake 由 CMake 提供),而 对于 Qt5、Qt6,则是使用 Config 模式进行查找,相应的 config 文件位于类似下面的目录中 D:\Qt\5.15.2\msvc2019\lib\cmake。…...

人脸应用实例:性别年龄预测

在当今科技飞速发展的时代,人脸识别技术已经从科幻电影走进了我们的日常生活。通过算法来识别人脸的特征,进而判断身份、年龄和性别,这一技术正逐步改变着我们的生活方式。今天,我们就来探讨一下基于深度学习的人脸应用实例——性…...

学习threejs,通过THREE.Raycaster给模型绑定点击事件

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.Raycaster光线投射概…...

Jackson Json序列化反序列化的两个坑

Jackson is a suite of data-processing tools for Java (and the JVM platform) Jackson最常用的Json序列化功能&#xff0c;引入如下的包即可&#xff1a; <properties>...<!-- Use the latest version whenever possible. --><jackson.version>2.17.1<…...

k8s_Pod健康检查

Kubernetes 3种探针介绍 LivenessProbe&#xff08;存活探针&#xff09; LivenessProbe 用于检查容器是否仍然活着。如果探针检测到容器已经失去响应&#xff0c;Kubernetes 将重启该容器。这通常用来修复由于内部状态错误或死锁引起的程序失效问题。 作用&#xff1a;检测容器…...

基于DDPG算法的股票量化交易

项目源码获取方式见文章末尾&#xff01; 回复暗号&#xff1a;13&#xff0c;免费获取600多个深度学习项目资料&#xff0c;快来加入社群一起学习吧。 **《------往期经典推荐------》**项目名称 1.【基于PyQTFaceNet卷积神经网络实现的学生人脸识别考勤系统】 2.【卫星图像道…...

免费flash网站模板/武汉关键词排名工具

Requests 是一个 Python 的 HTTP 客户端库。Request支持HTTP连接保持和连接池&#xff0c;支持使用cookie保持会话&#xff0c;支持文件上传&#xff0c;支持自动响应内容的编码&#xff0c;支持国际化的URL和POST数据自动编码。在python内置模块的基础上进行了高度的封装&…...

西安集团网站建设/企业文化建设方案

105、从前序和中序遍历构造二叉树 返回层序遍历&#xff1a;[3,9,20,null,null,15,7] 思路&#xff1a;递归 前序遍历&#xff1a;list[:1&#xff09;左闭右开 1 [1:idx1) [idx1:) [ 根节点, [左子树的前序遍历结果], [右子树的前序遍历结果] ]中序遍…...

怎么登录已注册的网站/推销

IT行业高薪这似乎已经成为大家公认的事实了&#xff0c;于是&#xff0c;越来越多的人自以为是地看好了这块肥肉&#xff0c;并做好了对自己进行投资的万全准备&#xff0c;参加几万块钱的培训机构&#xff0c;一头扎入“放心&#xff0c;学四个月&#xff0c;我保证你月薪过万…...

绵阳网站建设设计/成都网站设计

试验网站#1搜索引擎优化收录情况记录(断续运行)日期Yahoogooglebaidusogou每日收录每日收录增量每日收录每日收录增量每日收录每日收录增量每日收录每日收录增量2007-6-24288 333 1060 4813 2007-6-25164013523330108020481302007-6-26空间超过6月流量限制……&#xff0c;…...

wordpress免费商城主题/潍坊自动seo

ASP.NET 支持两组性能计数器&#xff1a;系统和应用程序。前者在 ASP.NET 性能计数器对象中的 PerfMon 中公开&#xff1b;后者在 ASP.NET Applications 性能对象中公开。ASP.NET 性能对象中的 State Server Sessions 计数器&#xff08;仅适用于在其中运行状态服务器的服务器计…...

网站推广优化趋势/免费seo课程

1. 前言 Linux中的netfilter提供了一个防火墙框架&#xff0c;具有很好的扩展性&#xff0c;除了自带的模块之外&#xff0c;用户可以根据自己的需求定义新的防火墙模块加入其中&#xff0c;而编程过程也不是很复杂&#xff0c;只要依葫芦画瓢即可&#xff0c;可在原来的类似…...