使用Arduino开发ESP32:开发环境搭建

news2025/1/23 9:19:18

在这里插入图片描述

开发环境搭建

使用Arduino开发ESP32开发环境搭建方式和用Arduino开发ESP8266相似:https://blog.csdn.net/Naisu_kun/article/details/80186950#t0

下载安装Arduino IDE:

https://www.arduino.cc/en/Main/Software
Arduino IDE中添加ESP32开发板数据:
安装完成后选择:文件>首选项>附加开发板管理器网址 中加入Arduino core for esp32的地址 https://dl.espressif.com/dl/package_esp32_index.json
完成网址添加后就可以在:工具>开发板>开发板管理器 中搜索并下载esp32开发板数据包。(此过程可能需要科学上网!)

在这里插入图片描述
在这里插入图片描述

注:我这一步应该是有问题,网速的问题使得下载的很慢,长时间下载失败后有说是有问题,待解决。(下载最新版时)
重复好久下载最新版,一直失败,后下载了1.0.0后成功,但是仍无法更新至最新版。

程序下载测试

安装完开发板数据包后可以直接测试下,以输出Hello World为例,编写以下代码:

void setup()
{
  Serial.begin(115200);
  Serial.println("");
}

void loop()
{
  Serial.println("Hello World");
  delay(1000);
}

这里用的电路模块原理图见下面说明:
https://blog.csdn.net/Naisu_kun/article/details/84583785#_23

批量烧录固件到模块中

上面讲了如何编写上传程序,接下来讲讲如何量产。
相比《Arduino for esp8266》的量产烧录,这次的ESP32相对来说麻烦些。
仔细观察上面程序的上传过程(具体的字节数可能和上文程序有出入):
在这里插入图片描述

在这里插入图片描述
整个过程向ESP32模块中烧录了四块内容,这四块内容是什么?

第一块是boot_app0.bin,你可以在用户目录\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0\tools\partitions中找到它,或者在官方项目地址:https://github.com/espressif/arduino-esp32/tree/master/tools/partitions 这里找到它;
第二块是bootloader,你可以在用户目录\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0\tools\sdk\bin中找到它,或者在官方项目地址:https://github.com/espressif/arduino-esp32/tree/master/tools/sdk/bin 这里找到它,bootloader有很多个,分别对应不同的Flash芯片通讯接口模式和速度;
在这里插入图片描述

在这里插入图片描述
第三块是你的程序内容,可以在Arduino IDE中导出二进制文件,然后在项目文件夹中获得:
在这里插入图片描述
在这里插入图片描述

第四块是闪存区域划分信息,默认为default.bin,你可以在用户目录\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0\tools\partitions中找到它,或者在官方项目地址:https://github.com/espressif/arduino-esp32/tree/master/tools/partitions 这里找到它;
项目在每次编译或上传时会根据你的设置在用户文件夹临时目录生成临时的项目名称.ino.partitions.bin文件,你可以通过文件搜索找到它,当你在IDE中修改Partition Scheme设置后,就不能用默认的default.bin了,需要找到对应文件;
有了全部的四个文件后就可以进行烧录了。
烧录工具这里用乐鑫官方的:https://www.espressif.com/zh-hans/support/download/other-tools
在这里插入图片描述

在这里插入图片描述
软件打开不是很快,耐心等待。打开后选择ESP32 DownloadTool,然后再烧录软件界面选择对应的bin文件,填写对应地址,选择Flash速度、接口和大小,最后点击下方START按钮即可烧录。
在这里插入图片描述
在这里插入图片描述

总结

到此为止所有用arduino开发esp32的开发环境就建立完成了,这个相比用官方的IDF开发环境搭建来说就简单不少,比较适合新手体验esp32。

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

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

相关文章

第二道pwn题:shellcode

题目来自视频:链接:https://pan.baidu.com/s/17vX9dbfHkXBw71mcEXBgNQ?pwd6666 提取码:6666查看文件类型和保护,虽然现在的我还没有明白太多的保护。64位,放到ida里边rbp:保存的是栈中当前执行函数的基本地址。当前执…

xCAT安装指南

一、简介 xCAT使您能够轻松管理任何类型的技术计算工作负载的大量服务器。xCAT以卓越的扩展、各种支持的硬件和操作系统、虚拟化平台和完整的“day0”设置功能而闻名。 二、安装指南 免责声明 这些说明仅为指南,具体细节可能因操作系统版本而略有不同。有关最新推…

TCP与UDP

概述 传输层时向上层的应用层提供通讯服务的,是属于面向通信部份的最高层,同时也是用户功能的最底层 传输层有两个很重要的特点:复用、分用 复用:应用层所有的应用进程都可以通过运输层再传到网络层 分用:运输层从网…

【Unity】多分辨率适配

笔者按:使用Unity版本为2021.3LTS,与其他版本或有异同。请仅做参考 一、前言。 本文是笔者在学习使用Unity引擎的过程中,产学研的一个笔记。由笔者根据官方文档Unity User Manual 2021.3 (LTS)/Create user interfaces (UI)/Unity UI/UI 操作…

mingw编译opencv

我这里是msys2 这个是msys2的教程 https://blog.csdn.net/qq_39942341/article/details/105931335?ops_request_misc%257B%2522request%255Fid%2522%253A%2522167821146216800197067008%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&requ…

【LeetCode】剑指 Offer 24. 反转链表 p142 -- Java Version

题目链接:https://leetcode.cn/problems/fan-zhuan-lian-biao-lcof/submissions/ 1. 题目介绍(24. 反转链表) 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 【测试用例】: 示…

C++右值引用/移动语义

在此之前,我们所用的引用,其实都是左值引用。 int a 10; int& ra a; 下面我们来重新认识一下引用: 而何为左值?左值引用其实是什么?请往下看~ 左值是一个表示数据的表达式(如变量名或解引用的指针)&#xff…

77. writerows写入多行

文章目录1. 目标任务2. 准备工作3. writerow单行写入4. writerows多行写入5. a以追加的模式写入值6. 总结1. 目标任务 新建【各班级成绩】文件夹; 在该文件夹下新建一个【1班成绩单.csv】文件; 在该文件中写入下面的内容: 成绩 姓名 刘一…

CentOS 8搭建EMQX集群

概览 EMQX (opens new window)是一款大规模可弹性伸缩的云原生分布式物联网 MQTT (opens new window)消息服务器。 EMQ X 设计目标是实现高可靠,并支持承载海量物联网终端的MQTT连接,支持在海量物联网设备间低延时消息路由: 1. 稳定承载大规模的 MQTT 客…

Allegro如何添加菜单栏操作指导

Allegro如何添加菜单栏操作指导 用Allegro设计PCB的时候,将常用的命令放在菜单栏的话可以方便使用,省去设计时间,菜单如下图 Allegro支持自由添加或者删除菜单,具体操作如下 点击View点击Customize Toolbar

【使用vue init和vue create的区别以及搭建vue项目的教程】

vue init 是vue-cli2.x的初始化方式,可以使用github上面的一些模板来初始化项目 webpack是官方推荐的标准模板名 使用方式:vue init webpack 项目名称 例如使用github上面electron-vue的模板使用方式:vue init electron-vue 项目名称教程目…

Java的数据库编程:JDBC

Content 🎉1什么是API 🎉2.什么是JDBC 🎉3.数据库驱动包的安装 🎉4.数据库安装包在idea的使用 🎉5.JDBC的增删改查的简单实现 今天为大家带来JAVA的数据库编程,也就是用Java实现数据库 数据库的最基本的操作就是…

分布式锁简介

Redis因为单进程、性能高常被用于分布式锁;锁在程序中作用是同步工具,保证共享资源在同一时刻只能被一个线程访问。 Java中经常用的锁synchronized、Lock,但是Java的锁智能保证单机的时候有效,分布式集群环境就无能为力了&#xf…

软件设计师错题集

软件设计师错题集一、计算机组成与体系结构1.1 浮点数1.2 Flynn分类法1.3 指令流水线1.4 层次化存储体系1.4.1 程序的局限性1.5 Cache1.6 输入输出技术1.7 总线系统1.8 CRC循环冗余校验码二、数据结构与算法基础2.1 队列与栈2.2 树与二叉树的特殊性2.3 最优二叉树(哈…

VisualSP Enterprise - February crack

VisualSP Enterprise - February crack VisualSP(可视化支持平台)提供了一个上下文中完全可定制的培训平台,它可以作为企业web应用程序的覆盖层提供。无论员工正在使用什么应用程序,他们都能够快速访问页面培训和指导,说明如何最有效地使用该…

C++基础了解-14-C++ 字符串

C 字符串 一、C 风格字符串 C 风格的字符串起源于 C 语言,并在 C 中继续得到支持。字符串实际上是使用 null 字符 \0 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。 下面的声明和初始化创建了一个 RUNOOB …

教你如何搭建店铺—收支管理系统,demo可分享

1、简介1.1、案例简介本文将介绍,如何搭建店铺-收支管理。1.2、应用场景以店铺收支管理为核心,维度数据分析,智能指导门店经营,账目清晰一目了然,店铺经营更高效。2、设置方法2.1、表单搭建1)新建表单【客户…

如何使用码匠连接 DynamoDB

目录 在码匠中集成 DynamoDB 在码匠中使用 DynamoDB 关于码匠 DynamoDB 是亚马逊 AWS 的一种高性能、全托管的 NoSQL 数据库服务。作为一种数据源,DynamoDB 能够提供高度可扩展性、低延迟和可靠性。它支持多种数据类型和数据模型,包括键-值、文档和图…

元宇宙时代来临,Facebook豪掷百亿是谋略还是赌博?

"Facebook向元宇宙发起冲击,豪掷百亿是谋略还是赌博?"2022年,Facebook宣布将投资100亿美元用于元宇宙技术的开发和推广。这笔巨额资金的投入是否会给Facebook带来巨大的回报,还是一场高风险的赌博呢?首先&am…

【13种css选择器】学css选择器,这一篇就够了

举例形象让你学会,不搞官方话css所有的选择器相邻兄弟选择器后续兄弟选择器后代选择器子代选择器并集选择器(多重选择器)属性选择器伪类选择器伪元素选择器class选择器(类选择器)id选择器*选择器(通配符选择器)标签选择…