ESP32使用Arduino环境,安装、编译、下载、安装库

2023-11-04


一、安装Arduino环境


先下载Arduino:Arduinp IDE下载

我选择的是免安装压缩包,下载后直接解压即可运行。
在这里插入图片描述
界面。
在这里插入图片描述


二、添加ESP32开发板


而此时的开发板列表中,并没有ESP32设备。
需要额外安装支持包,以支持ESP32的开发。
在这里插入图片描述

  • 文件 - 首选项。
    在这里插入图片描述

  • 附加开发板管理网站中,输入

https://dl.espressif.com/dl/package_esp32_index.json
  • 顺手把上面的项目文件夹位置给改了,这个路径就是以后库的下载路径。

  • 点击,退出。
    在这里插入图片描述

  • 接着,工具 - 开发板 - 开发板管理
    在这里插入图片描述

  • 弹出后,搜索ESP32,点击安装。

  • 考验耐心的时候到了,下载非常慢,还总容易断。如果电脑是笔记本的话,可以用手机的热点。(不知道现在网络什么情况,不科学上网,访问Github,手机的基站网络要比家用宽带快得多)
    在这里插入图片描述

  • 安装好后,按照下图,选择开发板。
    在这里插入图片描述


三、为什么选用ESP32呢?


  先来说下市面上常用的MCU开发板。

  Arduino自家UNO开发板,其MCU型号为Atmega328p。频率仅有20MHz,2+32KB显然与时代脱节。最重要的是用了这么多年快停产了,价格每年都在涨,钱包日渐消瘦表示只好另寻佳人。

  stm32系列因为近两年价格猛涨,现已大部分被国产取代。但国产替代最大的问题在于手册不配套、SDK不维护,不是量产客户,很难得到FAE的技术支持。所以如果仅仅是diy爱好者,国产替代的使用体验肯定不如ST原厂的好。虽然过两年的价格可能会回落,但囤货的供应商显然不会让价格跌的那么快。现在的价格让人高攀不起,Cortex-A的价格买Cortex-M的芯片,而且还极有可能买到二手翻新,H750的价格没怎么变但没有小型易焊接的封装。对不起,再也不见。

  树莓派Pico的RP2040,普通而又自信的M0+,性能没多少亮点但结合价格来看中规中矩,外设不多但该有的也都有。最尴尬的是生态,目前支持c++MicroPython两种开发方式,Arduino未来会有支持。虽然不想说,但就个人以前的mpy使用体验来讲,mpy真是个无比尴尬的存在。乍一听很美好,低代码开发,不用在电脑安装编译工具链,也不用等待漫长的编译。不过泼冷水的来了,MicroPython虽然语法上与Python相似,但实际用起来完全就是两个东西。用过mpy的应该多少都痛恨其调试过程,解释器的运行机制,导致其比c慢的多得多;代码只有在MCU上运行后,才能知道之前写的对不对;且不得不人为添加许多异常处理,以免触发异常报错后导致程序卡死;还有扩展库的用法与标准Python的并不完全一致,用的库越多越感觉mpy与py的相似性越低。种种原因,都让MicroPython的体验没预想的那么好。

  乐鑫ESP32系列在疫情期的价格稳定,虽因台积电涨价,价格略涨,但相比较同行,简直业界良心。热门型号有比较新的ESP32C3,单核160MHz,WIFI+BLE5.0,虽然RAM略有缩水,仅400 KB SRAM,但得益于SDK优化,最终可供用户使用的内存与ESP32相差无几。QFN封装,有内置Flash的型号,除了GPIO较少其他方面都是吊打同行。另外ESP32的SDK可以说是在MCU界无敌强的存在,与其他国产的画风完全不同。开发方式多种多样,可以借助强大的ESP-IDF,也可以用Arduino、Platform、Lua、MicroPython。现阶段推荐型号有ESP32、ESP32C3。S2被阉割太多了搞的没法用,S3要等等但价格或许要比以前贵很多。

  本文介绍Arduino。而ESP-IDF开发可以参照我的专栏:ESP32开源驱动库Easyio的使用,基于ESP-IDF开发框架

  本教程使用ESP32-WROOM-E模组,4MB Flash。(其他的如WROVER也可以)


四、编译下载运行示例工程-Blink


尝试建立一个简单的工程,并编译下载运行。

  • 以比较简单的Blink为例。
    在这里插入图片描述

  • 针对自己的开发板,对GPIO做一些修改。
    在这里插入图片描述

  • 随后将开发板插入,选择端口,连接开发板。

  • 在上方的配置项为 下载波特率、ESP32运行频率、Flash频率、Flash模式、Flash容量、分区表 等等。我们在购置开发板或者模组时,一般都会选择4MB或者以上的版本,这时候可以不用修改,用默认的即可。
    在这里插入图片描述

  • 最后点击上传。就能看到板载的LED在闪烁。
    在这里插入图片描述


五、串口监视器使用


  • 重建一个工程。文件 - 示例 - ESP32 - ChipID - GetChipID。
  • 上传。
  • 打开 工具 - 串口监视器。来监视串口信息。
    在这里插入图片描述
  • 设置波特率,与例程中的115200一致。即可观察到ESP32串口输出的ChipID。
    在这里插入图片描述


ESP32开发板开源计划


  现已开源一款ESP32物联网开发板,支持WIFI、蓝牙、以太网、RS485、CAN通信。板载6轴IMU、温湿度传感器、38K红外遥控收/发、独立RTC、TF卡座。USB和18650双电源供电,有2.0寸单点电容屏可用,配套各外设驱动和LVGL源码。Github、立创EDA、CSDN全云端同步更新。

  详情可见:

打样免费的时代,速去JLC白嫖PCB。

开源学习交流Q群:827686418
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

ESP32使用Arduino环境,安装、编译、下载、安装库 的相关文章

  • 如何在Arduino上将int转换为字符串?

    如何转换 int n 到一个字符串 以便当我通过串行发送它时 它作为字符串发送 这是我到目前为止所拥有的 int ledPin 13 int testerPin 8 int n 1 char buf 10 void setup pinMod
  • Arduino:字符串到整数得到奇怪的值

    我想转换一个String to an int 我所能找到的就是你必须将 String 转换为 char 数组 然后将该数组转换为int 但我的代码产生奇怪的值 我无法弄清楚问题是什么 void ledDimm String command
  • STM32 Nucleo 上的上升沿中断多次触发

    我正在使用 STM32 NUCLEO F401RE 微控制器板 我有一个扬声器 经过编程 当向上 向下推操纵杆时 可以按设定的量改变频率 我的问题是 有时 通常 当向上 向下推动操纵杆时 频率会增加 减少多次 这意味着 ISR 正在执行多次
  • 通过JTAG恢复STM32 MCU磨掉的标记

    我有一块可能带有 STM32 MCU 的板 我想为该板制作定制固件 因为库存板有很多问题 不幸的是 电路板制造商很友善地磨掉了所有标记 有没有办法通过 jtag 获取设备 系列 ID 并将其交叉引用到型号 我能找到的一切都是关于获取芯片的唯
  • ARDUINO 常数有什么用?以前是22,现在是100

    我正在使用热电偶并下载了 MAX6675 库 我想知道以下几行中 ARDUINO 常量的值是做什么用的 if ARDUINO gt 100 lcd write byte 0 else lcd print 0 BYTE endif lcd p
  • DCF77 解码器与噪声信号

    我几乎完成了我的开源 DCF77 解码器项目 当我注意到标准 Arduino DCF77 库在噪声信号上表现非常差时 这一切就开始了 特别是当天线靠近计算机或洗衣机正在运行时 我永远无法从解码器中获取时间 我的第一个方法是向输入信号添加 数
  • 静态 uint8_t 数组的输入过程和类型

    我目前正在尝试将 Arduino IDE 中的整数变量转换为静态 uint8 t 数组的值 我在用 include
  • PWM DMA 到整个 GPIO

    我有一个 STM32F4 我想对一个已与掩码进行 或 运算的 GPIO 端口进行 PWM 处理 所以 也许我们想要 PWM0b00100010一段时间为 200khz 但随后 10khz 后 我们现在想要 PWM0b00010001 然后
  • 带/不带类的回调函数指针 C++

    我被困 我正在尝试形成一个函数 它将吃掉无类函数指针和对象中的函数指针 这是我当前的代码 希望能解释更多 它应该在 Arduino 上运行 所以我不能使用大型库 首先 我在 Arduino 上使用这个库 SimpleTimer A time
  • AVRDUDE Android Arduino ioctl 错误

    我之前的问题 Android 无法使用 AVRDUDE 与 Arduino 通信 https stackoverflow com questions 15596376 android cannot talk to arduino using
  • 将浮点数转换为字节数组的 C 函数

    我正在尝试创建一个函数来接受浮点变量并将其转换为字节数组 我找到了一段有效的代码片段 但如果可能的话 希望在函数中重用它 我也在使用 Arduino 环境 但我知道它接受大多数 C 语言 目前工作 float variable 1 11 b
  • HAL_Delay() 陷入无限循环

    我被 HAL Delay 函数困住了 当我调用此函数 HAL Delay 时 控制陷入无限循环 在寻找问题的过程中 我发现了这个 http www openstm32 org forumthread2145 threadId2146 htt
  • 使用 SPIFFS 加载文件时出现问题 (ERR_CONTENT_LENGTH_MISMATCH)

    好吧 这两天我一直在研究这个问题 但我仍然觉得我一无所获 我最近开始使用SPIFFS 文件系统 for Arduino开发于呼扎 ESP8266像FSBrowser ino例如 虽然它在分离代码方面非常出色 但随着我的代码不断增长 它在稳定
  • 使用 Java 控制 Arduino

    我正在寻找一个LED http en wikipedia org wiki Light emitting diode用Java程序打开和关闭 我用 C 完成了这个项目大约 5 分钟 但用 Java 似乎更具挑战性 我让 Arduino 等待
  • Arduino C++ 析构函数?

    我知道在Arduino中你不能使用delete 那么什么时候调用 C 类中定义的析构函数呢 同样 如果我想创建一个指向数组的指针 我必须使用malloc and free 当对象被销毁时 析构函数被调用 对于自动 堆栈上 变量 它在离开其作
  • STM32 传输结束时,循环 DMA 外设到存储器的行为如何?

    我想问一下 在以下情况下 STM32 中的 DMA SPI rx 会如何表现 我有一个指定的 例如 96 字节数组 名为 A 用于存储从 SPI 接收到的数据 我打开循环 SPI DMA 它对每个字节进行操作 配置为 96 字节 是否有可能
  • Python串口通信

    我正在开发一个 Arduino 项目 由于内存限制 我将其与 Python 脚本连接起来 在Python方面 我有一个二维矩阵 其中包含各自的x y坐标值 并且在此列表中有26000个坐标对 因此 为了向大家澄清数据结构 pathlist
  • Arduino Nano 33 IoT 的软件序列号

    我计划从旧的 5V Arduino Nano 迁移到新的 Arduino Nano 33 IoT 我已经使用软件串行 SoftwareSerial h 为旧的 5V Arduino Nano 编写了一个功能代码 以便与 Sim800L 模块
  • Arduino 高低

    我有一个 Arduino 我想知道到底是什么HIGH and LOW意思是 就实际值而言 它们是否有符号ints unsigned ints unsigned char是 他们的价值观是什么 我猜HIGH and LOW可能是unsigne
  • stm32l0: 执行MI命令失败。使用 vFlashErase 数据包擦除闪存时出错

    我正在使用 Nucleo STM32L031 和 AC6 STM32 工作台 eclipse 我编写应用程序并进入调试模式 一切正常 直到我在应用程序中添加另一个功能 我注意到当我删除 评论 新函数 软件可以再次进入调试模式 但是当我添加

随机推荐

  • 通过AT指令访问SIM卡

    不借助读写卡工具 直接通过AT指令访问SIM卡 一 命令类型 1 AT CRSM 对于SIM卡 参考3GPP 51 011 对于USIM卡 参考ETSI TS 102 221 2 AT CSIM 参考3GPP TS 27 007 二 常用命
  • Mybatis学习笔记1:CRUD与配置解析

    文章目录 1 简介 1 1 什么是Mybatis 1 2 持久化 1 3 持久层 1 4 为什么需要Mybatis 2 第一个Mybatis程序 2 1 搭建环境 2 2 创建一个模块 2 3 编写代码 2 4 测试 2 5 作用域 Sco
  • FPGA自学之路2(计数器or6分频器(偶分频))

    先说一个今天碰到的modelsim报错 原因在于代码模块名和文件名不一致 改成一致就不报错了 下面是modelsim波形图时间间隔调整 时间间隔 一般调成ns 下图是设置波形图数字进制 b是二进制 d是十进制 h是十六进制 下图左边红线是加
  • spring boot 内部执行 spark submit

    最近项目要用到大数据 边学边搞项目 一个坑接着一个坑地踩 好在头铁 总能柳暗花明 spark submit 提交任务到 yarn 集群执行官方资料写的很清楚 如果是用脚本方式执行看看说明分分钟搞定的 可偏偏好死不死 设计的方案是在 spri
  • springboot怎么返回ajax,springbootajax查看直接能够返回查询页面

    Controller RequestMapping activity public class ActivityController javascript Autowired private ActivityService activity
  • 大数据技术——HBase安装配置&DDL&DML操作

    HBase文章目录 1 HBase 安装 1 1 HBase下载 1 2 HBase安装 1 3 HBase 初始配置 2 配置高可用并且群起集群 2 1 HBase高可用 2 2 群起集群 2 3 进入HBase客户端 3 DDL DML
  • C++搭配PCL在点云里画直线的实现

    一个很简单的小功能 在点云里画自己给定点之间的连线 我这里实现的是把二维的点云用一个正方体围起来 并等分为n n个格子 代码例子如下所示 我这里的是三维的点云 然后将z坐标置0了 定义四个边界点 水平的最大最小 竖直的最大最小 float
  • 给视频嵌入字幕的神器 MKVToolNix

    我们经常会下载一些视频是不带字幕的 也就是俗称的生肉 然后下载一些外挂字幕 其实我们可以自己把字幕压缩进视频里 我推荐一个 免费开源的给视频加字幕的软件 MKVToolNix 下载地址 https www fosshub com MKVTo
  • Druid数据库连接

    我们知道 应用系统最频繁 最主要的操作还是数据库的操作 所以数据库的性能和安全对于整个系统平台的重要性不言而喻 为了提高数据库性能 我们可以使用数据库连接池 有时候我们需要增加一些列的日志或是数据库性能监控工具来确保数据库的性能 同时还得防
  • Qt信号与槽执行频繁导致程序崩溃

    问题情景 使用Qt编写运动控制上位机时 需要读取IO端口信号 并根据读取到的信号将传感器的状态显示在主界面 由于没办法读取到电平的上升沿或下降沿变化 所以只能在循环内一直读取IO的电平 而IO端口数量比较多 大概有30个 如果读到电平后就发
  • Android Studio中如何调整代码字体大小

    Android Studio中如何调整代码字体大小 Android Studio是一款广泛使用的集成开发环境 IDE 用于开发Android应用程序 在进行代码编写时 对于不同的开发者来说 合适的代码字体大小是非常重要的 因此 本文将介绍如
  • Android首次打开APP引导层

    推荐一个好用小巧的Android引导蒙版 浮层 库
  • 【C++11】智能指针的定义 和 种类 及 使用

    智能指针 定义 为什么需要智能指针 在C 中 动态分配内存是一项常见的任务 但手动管理分配和释放内存可能会导致很多问题 如内存泄漏 悬垂指针以及多次释放同一块内存等 为了避免这些问题 引入了智能指针的概念 它们提供了自动化的内存管理 以下是
  • PLC软元件

    1 概要 最近刚好接触到PLC 将最近了解到的记录下来 PLC的主要编程语言就是梯形图以及指令表 还有一种不是很常用的SFC编程 这些编程方式主要体现在逻辑控制上 是将底层C语言编程方式进行图形指令封装 因此PLC又叫可编程逻辑控制器 说到
  • vue前端服务器端口_Vue前后端不同端口实现方案

    前浏围开幸 业来很广例量站标闪择以近览着发端Vue 8080端口 后端Node js 8085端口 主要记录下前后端不同端口遇到的问友持都发很秀框事 应编差里互是过是来本商理类了如则处果 展 字到中图各近圈就不这多发架件大用程题 1享一多很
  • el-table高度适应外围容器,ag-gride高度适应外围容器

    1 1 el table
  • vue 使用自定义字体

    1 1 引入字体到 Vue 项目 1 1 1 创建字体文件夹 在 static 文件夹下创建 font 文件夹 并将下载好的字体拷贝到文件夹下 1 1 2 创建字体样式文件 CSS font face font family numberF
  • ddos云服务器防御,腾讯云服务器被ddos如何防御?

    免安装 绑定ip即可使用 零维护 ddos是什么 举例来说 我开了一家饭店 正常情况可以满足100人就餐需求 你进来就能找到位置并且很快能吃上饭 很不幸 我得罪地痞流氓 对方叫来300人涌进餐厅 叫着马上上菜 但是餐厅的容量只有100人 根
  • RocketMQ的顺序消息(顺序消费)

    简单介绍了消息有序性的概念 以及RocketMQ如何实现消息的顺序消费 文章目录 1 消息的有序性 2 生产者有序发送 3 消费者有序消费 1 消息的有序性 消息有序指的是一类消息消费时 能按照发送的顺序来消费 例如 一个订单产生了三条消息
  • ESP32使用Arduino环境,安装、编译、下载、安装库

    一 安装Arduino环境 先下载Arduino Arduinp IDE下载 我选择的是免安装压缩包 下载后直接解压即可运行 界面 二 添加ESP32开发板 而此时的开发板列表中 并没有ESP32设备 需要额外安装支持包 以支持ESP32的