esp32-S3专题一:初识esp32

2023-11-08

初识esp32-S3

初识esp32

使用esp32-s3这款芯片开发接近一年了,分享一下开发中的一些经验和项目中的亮点,希望后人能从中借鉴到一些经验。

一、优势和缺点

使用的是esp32-s3这款芯片,硬件上搭配300k的RAM的代码运行内存,4M的PSRAM作为堆和8M掉电不丢失的Flash,足以覆盖大多数物联网主控芯片的使用场景。其中PSRAM和Flash的大小还可以进行厂家选配和外接,主核工作频率最高在200M左右,甚至理论上可以以进行小尺寸的视频播放,外加集成蓝牙模块和wifi模块,以及乐鑫官方在所配套软件系统和对应衍生框架,使得这个系列芯片在国内低端芯片领域几乎没有对手。

二、开发工具介绍

2.1 工具下载:

推荐使用官方的esp-IDE工具,尽管这个工具存在各种debug,但是安装简单,新人上手几乎没有门槛。其中的具有独特的串口调试信息输出机制(堆栈金丝雀回溯),是vscode和Arduino不具备的,对于缺乏在线调试的项目来说十分友好。
官方网址:https://dl.espressif.cn/dl/esp-idf/?idf=4.4

在这里插入图片描述

直接下载第二个链接:espressif-ide-setup-2.9.1-with-esp-idf-5.0.1
esp系列根据实际选择,不清楚的小伙伴全选配置安装即可。
在这里插入图片描述
安装完成
下载完成

2.2 芯片资料和代码例程:

基本芯片核心资料代码和硬件手册:
https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/windows-setup.html
官方库(包含各种衍生框架):
https://gitee.com/EspressifSystems/esp-idf

三、新建项目和工具分布

3.1新建例程:

打开esp-ide,点击右上角file,选择新建项目,点击“Next >”,选择感兴趣的模板,点击finsh。
在这里插入图片描述
点击:使用其中一个模板创建项目
在这里插入图片描述

选择芯片,进行编译run
在这里插入图片描述

编译完成,串口连接芯片(下载模式)后,进行烧录。![在这里插入图片描述](https://img-blog.csdnimg.cn/95e4fa313594424f94f5066d31cb1538.png在这里插入图片描述

3.2环境部署简介:

菜单:乐鑫-》ESP-IDF工具管理器-》安装工具

在这里插入图片描述
第一项:framework的目录:
我下载的是V5.0框架,如果希望使用V4.4或者其他框架,可以直接在这边替换后,esp-IDE编辑器重新加载。

![在这里插入图片描述](https://img-blog.csdnimg.cn/8a13d54155464727924c94d8f7e8c490.png在这里插入图片描述
framework目录下级目录:
1.componts:系统组件目录
2.example:例程目录
这两个目录使用比较多,大家多注意。
在这里插入图片描述
framework同级目录
tools:编译程序的工具链
python_env:软件自带的python工具
在这里插入图片描述
第一次分享到处结束,觉得有帮助可以点个赞,谢谢大家。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

esp32-S3专题一:初识esp32 的相关文章

  • 在c++中定义一堆静态方法

    哪个是合适的 class xyz static int xyzOp1 static int xyzOp2 OR namespace xyz static int xyzOp1 static int xyzOp2 当我们使用类标签与命名空间标
  • 使用 Html Agility Pack 获取 html 页面上的所有 div id

    如何使用 Html Agility Pack 获取 html 页面上的所有 div id 我正在尝试获取所有 id 并将它们放入一个集合中 p p div class myclass1 div div div div div div div
  • 集群():是否可以仅检查文件是否已锁定,而不实际获取锁定(如果没有)?

    我的用例如下 我有一个程序 它强制在任何给定时间只能运行它的一个实例 因此在启动时它总是尝试在标准位置获取锁定文件 并在该文件终止时终止已经被锁定 这一切都工作正常 但现在我想用一个新的命令行选项来增强程序 当指定该选项时 将导致程序只打印
  • StackExchange Redis 删除所有以以下开头的键

    我有一个格式的密钥 Error 1 Error 24 Error 32 Using StackExchange Redis 我该怎么办KeyDelete在与格式匹配的所有键上Error 在另一个答案中我看到了 LUA 脚本 EVAL ret
  • 地图类容器的专用功能

    我想要专门为矢量和地图之类的容器设计一个函数模板 对于向量 我可以像下面那样做 但我不知道如何才能有一个专门版本的函数 该函数仅用于像地图这样的容器 include
  • 二叉树和快速排序?

    我有一个家庭作业 内容如下 别生气 担心 我是not请你帮我做作业 编写一个程序 通过使用二分查找的快速排序方法对一组数字进行排序 树 推荐的实现是使用递归算法 这是什么意思 到目前为止 这是我的解释 正如我在下面解释的那样 我认为两者都有
  • 如何在 Google Mock 中使用可选参数来模拟方法?

    如何使用可选参数模拟方法谷歌模拟 例如 class A public void set enable bool enabled true class MockA public A MOCK METHOD1 set enable void b
  • 为什么 xcode IDE 认为 `friend` 是保留字

    我一直在开发一个个人项目 并在我创建的新类中包含以下代码 property readonly getter isFriend BOOL friend 它似乎没有任何问题 当我构建它时 它可以编译得很好 但是当我们在xcode IDE看起来像
  • 我应该使用字节还是int?

    我记得曾在某处读到 即使您只需要字节 使用 Int32 更好 就性能而言 它 据说 仅适用于您不关心存储的情况 这是有效的吗 例如 我需要一个保存一周中某一天的变量 我是吗 int dayOfWeek or byte dayOfWeek E
  • 如何在 C++11 中返回类成员向量

    我读了几篇关于如何从方法返回向量的文章 其中包括 c11 右值和移动语义混淆返回语句 https stackoverflow com questions 4986673 c11 rvalues and move semantics conf
  • 来自同一基模板类的 C++ 重写函数,具有多重继承不明确的函数调用

    我需要打电话init int iNumber 从基类派生的函数 基类 h pragma once include stdafx h template
  • C 编程中的 rand() 问题? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么我总是用 rand 得到相同的随机数序列 https stackoverflow com questions 1108780 why do i always get the same seque
  • 大小为 k 的非连续子序列的最大值的最小值

    在开始之前 我希望这个问题不是重复的 我发现了几个类似的问题 但它们似乎都没有描述完全相同的问题 但如果它是重复的 我会很高兴看到一个解决方案 即使它与我的算法不同 我一直在尝试回答这个问题 https stackoverflow com
  • 结构大小与 typedef 版本不同?

    我的代码中有以下结构声明和 typedef struct blockHeaderStruct bool allocated unsigned int length typedef struct blockHeaderStruct block
  • 用 std::generate_n 填充 std::map

    我想填写一个std map using std generate n但无法让它发挥作用 我尝试过的是这样的事情 unsigned number of pairs 5 std map
  • Microsoft Visual Studio 2017 中的 wxWidgets 设置

    我花了大约 20 个小时试图弄清楚如何在 Microsoft Visual Studio 2017 中设置 wxWidgets 我遵循 https wiki wxwidgets org Microsoft Visual C 2B 2B Gu
  • 如何检查日期时间是否发生在今天?

    有没有比下面的代码更好的 net 方法来检查 今天 是否发生了 DateTime if newsStory WhenAdded Day DateTime Now Day newsStory WhenAdded Month DateTime
  • 使用属性和性能

    我正在优化我的代码 我注意到使用属性 甚至自动属性 对执行时间有深远的影响 请参阅下面的示例 Test public void GetterVsField PropertyTest propertyTest new PropertyTest
  • C 中的等效 plpgsql 触发器

    我有一个 PostgreSQL 9 0 服务器 并且在某些表上使用继承 因此我必须通过如下触发器模拟外键 CREATE OR REPLACE FUNCTION othertable before update trigger RETURNS
  • 在派生类中访问基类变量

    class Program static void Main string args baseClass obj new baseClass obj intF 5 obj intS 4 child obj1 new child Consol

随机推荐

  • js addEventListener监听scroll滚动条 距离底部一定距离,加载数据,超过最大高度移除监听事件

    测试dmeon testBox height 450px border 1px solid rebeccapurple width 500px color blueviolet overflow y auto 在这里插入代码片 div cl
  • pycharm远程linux服务器的plt.show()不显示

    仅作为记录 博主关闭pycharm重启 即可
  • 数学资源大全

    发信站 水木社区 Wed Apr 30 13 14 00 2008 站内 http www math org cn forums index php showtopic 4427 建议看此贴时 如果找某专题用ie查找 因为网站太多了 好不容
  • Open3D(C++) 法线定向(3)——朝向点云内部

    目录 一 朝向点云内部 二 代码实现 三 结果展示 一 朝向点云内部 如题 算法极其简单 无需做原理介绍 看代码即可 二 代码实现 include
  • 无聊的时候看了下科学计数法..

    作用 当我们要标记或运算某个较大或较小且位数较多时 用科学记数法免去浪费很多空间和时间 概念 科学记数法是一种记数的方法 把一个数表示成a与10的n次幂相乘的形式 这种记数法叫做科学记数法 例 19971400000000 1 99714
  • linux下的npm安装

    NPM Node Package Manager 即node包管理器 是用Javascript编写 最初由Isaac Z Schlueter开发 它会随着node js一起安装 用户可以通过npm把自己设计的模块分发到registry上 也
  • AD设置覆铜的过孔连接方式

    参考链接 https wenku baidu com view 15666e13f18583d049645956 过孔和焊盘有三种连接状态 noconnect 不连接 reliefconnect 十字形连接 directconnect 直接
  • VS2019 C++ SQL Server 数据库连接

    总体来说有VS有两种配置SQL Server的方式 一种是ADO 另一种是ODBC 这两种方式的查询我都有问题 查询到了结果数据不是乱码就是显示在list control上时值变了 我也不知道为什么 ADO 1 什么是ADO 以下ADO概念
  • IDEA简介及使用

    1 Intellij IDEA简介 Eclipse IBM公司开发 1 1 Jetbrains公司介绍 IDEA是JetBrains公司的产品 这家公司总部位于捷克共和国的首都布拉格 开发人员以严谨著称的东欧程序员为主 该公司旗下还有许多其
  • 关于java中实现word转pdf

    1 java中实现word转pdf几种方式如下 1 使用jacob Java COM Bridge 操作offfice的方式 基于这种方式无论是水印还是格式都可以完美转换 但是这个方式都只是基于windos下 但有些项目是需要部署到linu
  • html 页面友情提示,设置网站404页面的正确做法

    核心提示 HTTP 404 错误意味着链接指向的网页不存在 即原始网页的URL失效 这种情况经常会发生 什么是404错误 HTTP 404 错误意味着链接指向的网页不存在 即原始网页的URL失效 这种情况经常会发生 很难避免 比如说 网页U
  • Java解析环保HJ212协议

    文章目录 什么是环保HJ212协议 自己封装了一个基于java的HJ212解析类 解析效果查看 常用的标准码说明 什么是环保HJ212协议 HJ212是由国家环保行业制定的数据传输标准协议 通常是通过TCP IP通讯方式进行数据传输的 数据
  • java如何文档生成目录

    对于现有文档 含标题 使用spire doc去生成目录 由于不是免费版 没有表格行数限制 但第一页开头有个版权声明 只需要用spire生成目录 然后用poi打开它删去第一行声明即可 spire依赖
  • sublime java插件_将SublimeText3打造成简易Java IDE

    简介与优点 使用该教程 你能使你的Sublime Text3可以作为一个精简版的JAVA IDE工具 既可以独立在cmd控制台运行也可以在Sublime自带的控制台运行 运行后不会有乱码 报错后可以在文本框中直接在对应位置显示 基于原有的j
  • Matplotlib绘图(二)

    目录 Matplotlib 二 绘制一元二次方程的曲线y x 2 绘制正弦曲线和余弦曲线 subplot函数 散点图 Matplotlib 二 绘制一元二次方程的曲线y x 2 Matplotlib有很多函数用于绘制各种曲线 其中plot函
  • Openssl 1024bit RSA算法---公私钥获取和处理(一)

    1 简介 使用OpenSSL生成公私钥文件 然后再将文件中的信息读出的操作 由于要对设备升级 需要用到RSA算法对一部分验证信息进行加密 2 使用OpenSSL获取公私钥 我在window系统尝试安装OpenSSL 但是安装不上 我们可以使
  • 如何让Hyper-V使用CIFS/SMB存储

    如何让Hyper V使用CIFS SMB存储 在我们常见配置Hyper V存储的时候常常使用到的是本地的磁盘或者iSCSI的IP SAN 在使用IP SAN时是通过Iscsi连接器将磁盘挂在为本地的磁盘来使用的 但是在某些场合下没有使用IS
  • KVM——迁移KVM虚拟机

    一 KVM虚拟机迁移的方式 KVM平台中的KVM虚拟机迁移分为以下两种 1 冷迁移 静态迁移 我们存放虚拟机磁盘的目录都是挂在的一个nfs文件系统的磁盘 进行冷迁移时 只要在目标主机上挂载这个nfs文件系统 就可以看到要迁移的那个虚拟机的磁
  • Nuxt2+echarts5报错Unexpected token export?

    当在Nuxt js中使用ECharts 5时出现 Unexpected token export 错误通常是由于Nuxt js默认使用的是CommonJS模块系统 而ECharts 5使用ES模块语法所致 为了解决这个问题 需要对ES模块语
  • esp32-S3专题一:初识esp32

    初识esp32 S3 初识esp32 使用esp32 s3这款芯片开发接近一年了 分享一下开发中的一些经验和项目中的亮点 希望后人能从中借鉴到一些经验 一 优势和缺点 使用的是esp32 s3这款芯片 硬件上搭配300k的RAM的代码运行内