【ESP-IDF】你好世界

这里写目录标题

  • 创建项目
  • 小细节点

使用过Arduino的朋友一定会觉得ESP-IDF编译起来又慢又麻烦,但是我们为什么还是要使用ESP-IDF呢?原因就在于它比起Arduino来说更加强大!我们使用ESP-IDF能够更多地对ESP32的底层进行操作!

创建项目

打开VS Code,按住键盘上的Ctrl + Shift + p,输入ESP-IDF new project

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xl9JlGYw-1681050364613)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/7b6552d5-6661-4ddb-bd8a-06c70d8b3d75/Untitled.png)]

按回车
在这里插入图片描述
接着配置一些基础信息,如项目名、项目路径、选择开发板、选择串口,其余暂时都无需考虑,之后点击Choose Template

在这里插入图片描述
在模板中选择ESP-IDF,在get-started中选择sample_project,之后点击Create project template sample_project

在这里插入图片描述
在main.c中编写“Hello World \n”,并点击下方按钮编译运行

在这里插入图片描述

第一次编译时间比较长,耐心等待一下,之后会让你选择一个flash模式,根据以下推荐选择即可:

在这里插入图片描述

我是一个小白,你是一个经验丰富的程序员,现在我用的是ESP32S3,ESP32S3有两个外接TypeC口,一个标注为COM,另一个标注为USB,现在我在VSCode中使用ESP-IDF,需要选择ESP-IDF Board,选项如下: ESP32-S3 chip (via ESP-PROG) ESP32-S3 chip (via builtin USB-JTAG) ESP32-S3 chip (via ESP USB Bridge) 我应该如何选择,请你对每一个细节点都做详细的解答,并你根据我的实际情况,思考清楚每一步后再给我回答

你好,我很乐意帮助你。根据我从网络上搜索到的信息,ESP32S3有一个全速USB OTG接口,符合USB 1.1规范。这个接口用于给板子供电,给芯片烧写应用程序,以及通过USB 1.1协议与芯片通信,还可以用于JTAG调试**1。这个接口就是标注为USB的TypeC口。另一个标注为COM的TypeC口是一个USB转UART桥接器,用于通过串口与芯片通信2**。
在VSCode中使用ESP-IDF时,你需要根据你的连接方式选择不同的ESP-IDF Board选项。下面是每个选项的含义:

  • ESP32-S3 chip (via ESP-PROG): 这个选项表示你使用了一个外部的ESP-PROG调试器,通过JTAG接口连接到ESP32S3芯片。这种方式可以实现高速的烧写和调试功能,但需要额外的硬件和连接线。
  • ESP32-S3 chip (via builtin USB-JTAG): 这个选项表示你使用了板子上自带的USB OTG接口,通过USB协议连接到ESP32S3芯片,并利用芯片内置的USB-JTAG功能进行烧写和调试。这种方式不需要额外的硬件,但速度可能比ESP-PROG慢一些。
  • ESP32-S3 chip (via ESP USB Bridge): 这个选项表示你使用了板子上自带的USB转UART桥接器,通过串口连接到ESP32S3芯片,并利用芯片内置的ROM引导加载器进行烧写。这种方式也不需要额外的硬件,但速度可能比USB-JTAG慢一些,并且不支持调试功能。
    根据你的实际情况,如果你只想简单地烧写应用程序,并且不需要调试功能,那么你可以选择**ESP32-S3 chip (via ESP USB Bridge)选项,并且使用标注为COM的TypeC口连接到电脑。如果你想要调试功能,并且不想购买额外的硬件,那么你可以选择ESP32-S3 chip (via builtin USB-JTAG)选项,并且使用标注为USB的TypeC口连接到电脑。如果你想要最快的烧写和调试速度,并且愿意购买额外的硬件,那么你可以选择ESP32-S3 chip (via ESP-PROG)**选项,并且使用ESP-PROG调试器连接到电脑和板子。
    希望这些信息对你有帮助。如果你还有其他问题,请随时提出。

了解详细信息:1. docs.espressif.com; 2. docs.espressif.com;3. learn.adafruit.com

可以看到终端正确输出了
在这里插入图片描述

小细节点

在这里插入图片描述
这个时候我们需要添加一个这个fflush(stdout);,“冲马桶”操作,将数据从缓存区中刷新出来
在这里插入图片描述
同样,ESP-IDF也支持以下C语言基础语法:

#include <stdio.h>
int num = 10;
float tem = 19.2354;
void app_main(void)
{
    // printf("Hello World \n");       // 数据进入缓存区后通过换行符“\n”刷新显示出来
    printf("Hello ");   // 数据进入缓存区
    printf("World \n"); // 数据进入缓存区
    printf("当前num为:%d", num);
    printf("\n");
    printf("当前tem为:%.1f", tem);
    printf("\n");

    // “冲马桶”操作,将数据从缓存区中刷新出来
    fflush(stdout);
}

-----------------------------------------------------------------------------------------------------
输出为:
--> Hello World
--> 当前num为:10
--> 当前tem为:19.2

更多笔记:ESP-IDF 笔记 - 入门篇

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

“智慧”的大楼,为啥落地这么难?

在5A级写字楼上班是什么感觉?      当你加班至凌晨,灯光和空调系统仍然会为你继续服务。      当你进入停车场,系统会自动引导至方便停车的空位。      当你点完外卖但无法抽身时,送餐机器人便会将午饭送到公司门口。    所谓5A,就是指建筑的高度智能化,它包含…

Java GenericObjectPool 对象池化技术--SpringBoot sftp 连接池工具类

通常一个对象创建、销毁非常耗时的时候&#xff0c;我们不会频繁的创建和销毁它&#xff0c;而是考虑复用。复用对象的一种做法就是对象池&#xff0c;将创建好的对象放入池中维护起来&#xff0c;下次再用的时候直接拿池中已经创建好的对象继续用&#xff0c;这就是池化的思想…

有些人失业是必然的,AIGC使用两周后体验

原文来自 鸟哥笔记 刘飞 沉浸式地体验过 Midjourney 和 ChatGPT 两周后&#xff0c;分享下我的观察和思考。 1. 神奇十一月 Midjourney 的 v4 版本是 11 月 5 日发布的&#xff0c;ChatGPT 是 11 月 30 日发布的&#xff0c;堪称 AIGC 应用历史上最神奇的十一月。 其实 Mid…

【第一节】- flink源码编译

分析flink源码,第一步从flink源码编译开始。 环境: scala 2.12 java 1.8 flink 1.17.0 maven 3.6.8 nodejs(这个去官网下载安装一下就好,npm -v 显示成功就好)1、首先在flink 官网下载最新的源码 下载链接: https://flink.apache.org/zh/downloads/ 2、下载完成后,解压…

USB土壤参数检测仪丨便捷、全面、耐用

土壤水分是农业科学灌溉的基础&#xff0c;无论是植物科学研究、还是农业增产增收&#xff0c;土壤中的水分、温度、电导率、酸碱度都十分重要。 但现在的问题是“如何迅速、便捷地获取土壤参数信息”&#xff1f; USB土壤参数检测仪 就能实现以上目的 ↓ ↓ ↓ USB土壤参数…

fiddler(抓包)的用法和HTTP 协议的基本格式

目录 fiddler(抓包)用法&#xff1a; HTTP 协议的基本格式 HTTP请求&#xff1a; 首行 认识HTTP方法 GET和POST的典型区别&#xff1a; 认识请求“报头”&#xff08;header&#xff09; HTTP 响应 HTTP状态码&#xff1a; 状态码的分类&#xff1a; 认识响应 …

厉害了!Facebook优惠广告让你的广告预算翻倍

如果你是一个企业主或者市场营销人员&#xff0c;你可能已经知道Facebook广告平台是一个强大的数字广告工具&#xff0c;可以帮助你推广产品和服务&#xff0c;并且吸引潜在客户到你的网站上。 而今天&#xff0c;我们将教你如何创建和投放Facebook优惠广告以及如何利用这些广…

【Linux】信号的捕捉

文章目录信号的捕捉∞图sigaction函数信号的捕捉 当我们在执行主流程的时候,可能因为某些情况而陷入内核,当内核处理完毕准备返回用户态时,就需要进行信号pending的检查,&#xff08;此时仍处于内核态,有权力查看当前进程的pending位图&#xff09; 在查看pending位图时,如果…

【Django网络安全】跨站点请求伪造保护,CSRF如何正确使用

Django网络安全 【Django网络安全】跨站点请求伪造保护,CSRF如何正确使用 文章目录Django网络安全前言一、CSRF攻击场景二、CSRF攻击的防御手段1.验证 HTTP Referer 字段2.请求地址添加token并验证三、Django的CSRF防御解析1.CSRF防护的过程2.cookie中的csrftoken3.session中的…

ArrayList与LinkList的区别

ArrayList底层的实现是Array, 数组扩容实现 新增数据空间判断, 新增数据的时候需要判断当前是否有空闲空间存储 扩容需要申请新的连续空间,把老的数组复制过去 新增新的内容, 回收老的数组空间 LinkList是一个双链表,在添加和删除元素时具有比ArrayList更好的性能, 但是再查…

刷题记录|Day48 ● 198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III

● 198.打家劫舍 题目描述 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警。 给…

如何选择理想的三相浪涌保护器?

每个电气系统都需要各种组件来控制和保护电流&#xff0c;因为电力使用不当是会危及生命安全的&#xff0c;但是电的存在也使得科技和社会的进步便捷&#xff0c;生活更加便捷高效。 由于技术的进步&#xff0c;现在需要新型的SPD浪涌保护器&#xff0c;地凯科技三相浪涌保护器…

【vSphere | Python】vSphere Automation SDK for Python Ⅲ—— vCenter Datacenter APIs

目录5. vCenter Datacenter APIs操作5.1 Create Datacenter5.2 List Datacenter5.3 Get Datacenter5.4 Delete Datacenter参考资料5. vCenter Datacenter APIs 数据中心服务&#xff08;Datacenter service&#xff09;提供管理 vCenter Server 中数据中心的操作。 操作 Cre…

为什么无法跨centos、ubuntu、rocky linux 发行版本进行系统升级?

本文原地址: http://feitianzhi.com/boke/index.php/archives/56/ 转载请注明出处,有疑问或错误请发邮件到xiaozhifslib.org 背景 linux分为很多发行版本&#xff0c;发行版本的内核可以升级&#xff0c;比如centos7可以使用kernel 4.*,5.的内核&#xff08;官方默认为3.&…

xinput1_3.dll缺失了如何去修复?xinput1_3.dll解决方法分享

缺失了xinput1_3.dll文件&#xff0c;对应用程序或游戏的正常运行造成了严重的影响。这个动态链接库文件&#xff08;DLL&#xff09;是由Microsoft Corporation开发的&#xff0c;它是一个重要的Windows系统文件&#xff0c;提供了针对Xbox 360控制器的输入支持。如果这个文件…

释放AIoT商业价值 | 2023高通广和通智能物联网技术开放日圆满落幕

数字经济迸发澎湃动能&#xff0c;万物智联融入千行百业&#xff0c;成为推动经济增长的重要引擎。为深入探讨AIoT前沿变革技术与行业创新&#xff0c;3月30日&#xff0c;2023高通&广和通智能物联网技术开放日于上海顺利举办&#xff0c;来自高通和广和通的多位高层领导、…

22.SSM-JdbcTemplate总结

目录 一、JdbcTemplate对象。 &#xff08;1&#xff09;Spring产生JdbcTemplate对象。 &#xff08;2&#xff09;JdbcTemplate常用操作。 &#xff08;3&#xff09;知识要点。 一、JdbcTemplate对象。 &#xff08;1&#xff09;Spring产生JdbcTemplate对象。 这个是Sp…

贯穿设计模式第二话--开闭职责原则

&#x1f973;&#x1f973;&#x1f973; 茫茫人海千千万万&#xff0c;感谢这一刻你看到了我的文章&#xff0c;感谢观赏&#xff0c;大家好呀&#xff0c;我是最爱吃鱼罐头&#xff0c;大家可以叫鱼罐头呦~&#x1f973;&#x1f973;&#x1f973; 从今天开始&#xff0c;将…

区块链学习笔记(3)BTC协议

假设有一个大家都信任的中心化机构想要发行数字货币。 该机构由用自己的私钥签名后后发行&#xff0c;任何人都可以通过公钥验证该货币是否为真。 买东西的时候&#xff0c;购买者可以将数字货币发送给卖方&#xff0c;卖方可以也可以通过公钥验证该货币为真后即可完成支付的过…

运算符重载

概念&#xff1a;对已有运算符重新进行定义&#xff0c;赋予其另一种功能&#xff0c;以适应不同的数据类型。 目录 一、加号运算符重载 分类&#xff1a; ①成员函数重载号 ②全局函数重载号 二、左移运算符重载 作用&#xff1a;以输出自定义数据类型 三、递增运算符重…
最新文章