【嵌入式】Arduino IDE + ESP32开发环境配置

news2024/10/6 22:27:37

一 背景说明

        最近想捣鼓一下ESP32的集成芯片,比较了一下,选择Arduino IDE并添加ESP32支持库的方式来开发,下面记录一下安装过程以及安装过程中遇到的坑。

二 下载准备

【1】Arduino IDE + ESP32支持一键安装包(非常推荐):Arduino中文社区

【2】官方最新版Arduino IDE(不太推荐最新版的IDE,可能与有些库不兼容):Software | Arduino

【3】官方最新版ESP32库(同样不太推荐最新版的库,可能与IDE不兼容):GitCode - 开发者的代码家园

三 正式安装

       参考  Arduino IDE安装esp32 SDK(Windows)安装方法 :

【1】安装IDE:

        下Arduino IDE 2.2.1 版本并安装(不太推荐最新版本的IDE,踩到的坑和解决办法后面详述)。这个过程中选择默认或者自定义的安装地址均可(注意不要有中文路径),另外提示的驱动之类需要全部安装上。

【2】修改中文并添加附加开发板地址:

        打开Arduino IDE菜单 > 文件 >首选项 >编辑器语言 >中文(简体);

        打开Arduino IDE菜单 > 文件 >首选项,在 附加开发板管理器网址输入框中,填入以下网址:

https://arduino.me/packages/esp32.json

【3】安装社区离线包:

        先关闭Anduino IDE,再使用下载好的esp32安装包,直接运行,程序会自动解压到相应位置(我这边使用的是ESP32 2.0.9版本)。

        解压完成后,重启Arduino IDE,即可在 菜单栏>工具>开发板 中找到你使用的esp32开发板。

三 代码编译

【1】菜单栏>工具>开发板 中选择使用的开发板;

【2】菜单栏>文件>示例 中选择需要测试的例程;

【3】菜单栏>项目>验证/编译 中编译,并可以将编译好的文件,通过串口烧录到指定开发板中:

        至此安装编译完成。

四 遇到的坑

【1】方法一(失败原因:下载极慢,中间报错):一开始安装的时候,使用官网下载的最新IDE,通过IDE中 菜单栏>工具>开发板 直接搜索esp32 by Espressif 并下载。由于没有科学上网,下载速度极慢,而且在下到第五个包的时候报错失败。这种方式对于不能科学上网的同学不推荐。

【2】方法二(失败原因:能够安装看到开发板内容,但是例程编译失败,怀疑版本不兼容):IDE不变,继续寻求其他安装方法。下载前文“下载准备”中的【3】官方最新的ESP32库,下载下来之后,参考ESP32的arduino开发环境搭建_arduino-esp32-master.zip-CSDN博客中的方法,安装成功,但是随便选了一个例程之后编译失败。怀疑问题在于最新版的IDE(一开始用的是2.3.2)与最新的ESP32库不兼容。遂选择回退IDE与ESP32的版本,用上面正文中的方法安装编译成功。

【3】回退IDE版本: 参考 完全卸载Arduino IDE_arduino卸载不干净-CSDN博客 ,先把之前版本的 Anduino IDE 卸载干净。其中主要关注以下三个路径内容有没有清空干净:

(i)Anduino IDE安装路径;(正常卸载之后即可清空)

(ii)C:\Users\(你的用户名)\Documents\Arduino;

(iii)C:\Users\(你的用户名)\AppData\Local\Arduino15;(AppData为隐藏文件夹,需要在查看中勾选“隐藏的项目”才能进入)

        完全卸载之前版本之后,再重新安装需要回退的版本即可。

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

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

相关文章

Linux RTC驱动深入解析

目录标题 实时时钟(RTC)基础Linux内核中的RTC框架RTC设备类设备树(Device Tree) 编写Linux RTC驱动1. 初始化和注册2. RTC设备操作函数3. 清理函数 测试RTC驱动驱动开发的挑战总结 在许多嵌入式系统和服务器上,实时时钟…

安全小课堂丨什么是暴力破解?如何防止暴力破解

什么是暴力破解? 暴力破解也可称为穷举法、枚举法,是一种比较流行的密码破译方法,也就是将密码进行一一推算直到找出正确的密码为止。比如一个6位并且全部由数字组成的密码,可能有100万种组合,也就是说最多需要尝试10…

STM32系统参数和结构

系列文章目录 STM32单片机系列专栏 C语言术语和结构总结专栏 文章目录 1. 基本参数 2. 片上资源(外设) 3. STM32系列命名规则 4. 系统结构 5. 引脚定义 6. 启动配置 7. 最小系统电路 8. 型号分类和缩写 1. 基本参数 STM32F103C8T6 系列&#…

【工具】录屏软件Captura安装使用及ffmpeg下载配置

开启技术视频创作,录屏软件林林总总,适合的、习惯的最好。 录屏软件Captura的使用及ffmpeg下载配置 1.Captura下载、安装2.FFmpeg下载、配置3.Captura屏幕录制试用、录制视频效果 1.Captura下载、安装 Captura主要是一个免费开源的录屏软件&#xff0c…

动态创建链表 与头插法 和头插法的优化

1.代码一 思想:在main函数中实行三次头插法,在insertFromHead()函数中,主要创建新的节点new,开辟空间,输入想要增加的data;根据头节点的情况来判断插入, 如果head NUL…

DSPy入门:告别指令提示,拥抱编程之旅!

原文:intro-to-dspy-goodbye-prompting-hello-programming 2024 年 2 月 27 日 DSPy框架如何通过用编程和编译代替提示来解决基于LLM的应用程序中的脆弱性问题。 目前,使用大型语言模型(LLMs)构建应用程序不仅复杂而且脆弱。典型的pipelines通常使用pr…

Xinlinx FPGA内的存储器BRAM全解

目录 一、总体概述1.7系列FPGA的BRAM特点2.资源情况 二、BRAM分类1.单端口RAM2.简单双端口RAM3.真双端口RAM 三、BRAM的读写1、Primitives Output Registers读操作注意事项2.三种写数据模式(1)Write_First(2)Read_First&#xff0…

梯度,hesse阵与Jacobi矩阵

分清楚三个量的含义和计算方法。 梯度 表征的是一个列向量,是相对于某个方向而言的,但是某个方向上可能有多个变量,所以梯度不是简单的直接求偏导,并且说了,它是一个列向量,所以, 我们设 f : …

从0到1—POC编写基础篇(二)

接着上一篇 POC常用基础模块 urllib 模块 Python urllib 库用于操作网页 URL,并对网页的内容进行抓取处理。 urllib 包 包含以下几个模块: ●urllib.request - 打开和读取 URL。 ●urllib.error - 包含 urllib.request 抛出的异常。 ●urllib.parse - …

Access2019直接将数据导入SQL Server数据库中,再直接链接回来

Access2019 的数据表等,除了通过 SSMA 导入数据库外,还可以利用access2019 自身的外部数据导出功能来达到目的。本文将详细介绍这一操作过程。 一、命令行操作阶段 1.以SA这一超级用户登录SQL Server,创建一个数据库,例如“个人…

【java毕业设计】 基于Spring Boot+mysql的高校心理教育辅导系统设计与实现(程序源码)-高校心理教育辅导系统

基于Spring Bootmysql的高校心理教育辅导系统设计与实现(程序源码毕业论文) 大家好,今天给大家介绍基于Spring Bootmysql的高校心理教育辅导系统设计与实现,本论文只截取部分文章重点,文章末尾附有本毕业设计完整源码及…

C++中的list类模拟实现

目录 list类模拟实现 list类节点结构设计 list类非const迭代器结构设计 迭代器基本结构设计 迭代器构造函数 operator()函数 operator*()函数 operator!()函数 operator(int)函数 operator--()函数 operator--(int)函数 operator()函数 operator->()函数 list…

MATLAB 数据类型

MATLAB 数据类型 MATLAB 不需要任何类型声明或维度语句。每当 MATLAB 遇到一个新的变量名,它就创建变量并分配适当的内存空间。 如果变量已经存在,那么MATLAB将用新内容替换原始内容,并在必要时分配新的存储空间。 例如, Tota…

Java虚拟机类加载机制详细总结

1、概述 Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制。 2、类加载的时机 一个类型从被加载到虚拟机内存中开始&#xff…

idea自定义配置文件的注释

打开 IntelliJ Idea 软件 依次找到 File—>Editor—>File and Code Templates 设置 Files 下的Class、Interface、Enum等 输入下面的内容 /** * description: ${NAME} * date: ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE} * author: author **/

ElasticSearch总结二

正向索引和倒排索引: 正向索引: 比方说我这里有一张数据库表,那我们知道对于数据库它一般情况下都会基于i d去创建一个索引,然后形成一个b树。 那么你根据i d进行检索的速度,就会非常的快,那么这种方式的…

VMware 15 安装centos7虚拟机

1. 安装前准备 1.1 下载centos 阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 下载需要版本的centos版本 直达链接 centos7.9 : centos-7.9.2009-isos-x86_64安装包下载_开源镜像站-阿里云 .基础使用的话安装选择这个就行了,大概下载几分钟 2. …

iOS ------代理 分类 拓展

代理协议 一,概念: 代理,又称委托代理(delegate),是iOS中常用的一种设计模式。顾名思义,它是把某个对象要做的事委托给别的对象去做。那么别的对象就是这个对象的代理,代替它来打理…

【简单讲解下如何学习C++】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

P1106 删数问题

本题为洛谷&#xff1a; #include<iostream> #include<string> using namespace std; int main(){string n;int k;cin>>n>>k;while(k--){for(int i0;i<n.length();i){if(n[i]>n[i1]){n.erase(i,1); break;} }for(int i0;i<n.length()-1&&…