ESP开发环境搭建

news2024/12/28 3:18:34

一、windows中搭建

 esp-idf tool(可选),下载连接如下:https://dl.espressif.com/dl/esp-idf/?idf=4.4

下载安装tools后进入vscode进行插件安装(未离线下载idf工具也可以通过第二步通过插件下载安装)

1. vscode安装编译环境

ESP-IDF 需要安装一些必备工具,才能围绕ESP32 构建固件,包括Python、Git、交叉编译器、CMake 和Ninja 工具等。

最简单的方式是从如下网址下载ESP-IDF 工具安装器,安装器包含了相应的开发工具链以及最新稳定版本的ESP-IDF。

也可以直接从git下载通过安装包安装idf(地址如下)

espressif/esp-idf at release/v5.0 (github.com)

在VSCODE菜单中选中查看->命令面板,搜索:ESP-IDF:Configure ESP-IDF extension 进去配置

选择第二种按要求进行安装 等待时间偏长。

2、ESP-IDF基于 C/C++ 语言开发,在components目录下集成了大量功能丰富的软件组件。

这些软件组件和功能主要有如下部分:

FreeRTOS实时操作系统,可支持多核,具有基于功能的堆分配器。

标准编程接口,包含 POSIX 线程和其他 POSIX API、BSD 套接字、线程安全的 C/C++ 标准库,支持虚拟文件​​系统。

外设驱动程序,包含SPI、I2C、UART、GPIO、I2S、ADC、DAC、电容触摸板、定时器、LED和电机PWM、RMT、脉冲计数器、CAN/TWAI、SD/eMMC/SDIO主机和SDIO从机、以太网驱动器。

WiFi驱动程序,支持WiFi Mesh协议,ESP-NOW点对点协议,ESP-LR远程协议等等。

经典蓝牙和低功耗蓝牙,包含蓝牙控制器和蓝牙协议栈,其中蓝牙协议栈Bluedroid支持经典蓝牙和低功耗蓝牙双模,而NimBLE仅支持低功耗蓝牙。

LwIP TCP/IP协议栈,可支持有线网和WiFi的互联网连接和应用。

电源管理,支持MCU低功耗模式以及 WiFi、蓝牙低功耗模式的电源管理框架。

存储管理,支持分区管理器、容错和日志结构的键值存储 (NVS),支持加密、FAT和 SPIFFS文件系统。

安全功能,具备受硬件支持的安全性能,如 Flash 加密和安全启动,为 RSA、SHA 和 AES 提供加密加速器支持。

网络配置管理,支持Bluetooth LE、WiFi 和其它带外机制的设备加载统一配置框架。

开发者可以根据开发需求,自行添加第三方或者自己的组件,添加的方式可参考components目录下ESP-IDF组件的实现方式或者参考乐鑫官方文档ESP-IDF编程指南。

也可以直接从官方示例中查看:API 参考 - ESP32-C2 - — ESP-IDF 编程指南 latest 文档

3、编译示例文件:ctl shift + p

编译成功后的占用

4、支持的云平台 Cloud Frameworks - ESP32 - — ESP-IDF 编程指南 v5.0.1 文档

AWS IoT esp-aws-iot 是基于Amazon Web Services的aws-iot-device-sdk-embedded-C的ESP32的开源存储库。

Azure物联网 esp-azure 是基于Microsoft Azure的azure-iot-sdk-c SDK的ESP32的开源存储库。

Google IoT核心 esp-google-iot 是基于Google的iot-device-sdk-embedded-c SDK的ESP32的开源存储库。

阿里云物联网 esp-aliyun 是基于Aliyun的iotkit嵌入式SDK的ESP32开源存储库。

Joylink物联网 esp-joylink 是基于Joylink的joylink_dev_sdk SDK的ESP32开源仓库。

腾讯物联网 esp-welink 是基于腾讯的welink SDK的ESP32开源仓库。

腾讯云物联网 esp-qcloud 是基于Tencentyun的qcloud-iot-sdk-embedded-c SDK的ESP32开源仓库。

Baidu IoT esp-baidu-iot 是基于百度的iot-sdk-c SDK的ESP32开源仓库。

二、Linux中搭建:

使用gitee源下载各个模块比较方便

  • Step 1:

git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git

  • Step 2:

git clone https://gitee.com/EspressifSystems/esp-idf.git

注意:仅克隆 esp-idf,不包含子模块。

  • Step 3:

可以有两种方式来更新 submodules。

  • 方式一

进入 esp-gitee-tools 目录,export submodule-update.sh 所在路径,方便后期使用,如:

cd esp-gitee-tools export EGT_PATH=$(pwd)

进入 esp-idf 目录执行 submodule-update.sh 脚本:

cd esp-idf $EGT_PATH/submodule-update.sh

  • 方式二

submodule-update.sh 脚本支持将待更新 submodules 的工程路径作为参数传入,例如:submodule-update.sh PATH_OF_PROJ。

假如 Step 2 中 clone 的 esp-idf 位于 ~/git/esp32-sdk/esp-idf 目录,可使用以下方式来更新:

cd esp-gitee-tools ./submodule-update.sh ~/git/esp32-sdk/esp-idf

如果要更新其他工程,可以同样方式。至此就下载到所有需要的模块。(我使用方式一)

安装模块

Note:不要使用 IDF 自带的 install.sh,使用 esp-gitee-tools 内的 install.sh。(下载模块时完成可以忽略)

  • Step 1:

git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git

  • Step 2:

可以有两种方式来安装工具。

  • 方式一

进入 esp-gitee-tools 目录,export install.sh 所在路径,方便后期使用,如:(下载模块时完成可以忽略)

cd esp-gitee-tools export EGT_PATH=$(pwd)

进入 esp-idf 目录执行 install.sh 脚本:

cd esp-idf $EGT_PATH/install.sh

  • 方式二

install.sh 脚本支持将 ESP-IDF 工程路径作为参数传入,例如:install.sh PATH_OF_IDF。

假如 esp-idf 位于 ~/git/esp32-sdk/esp-idf 目录,可使用以下方式来更新:

cd esp-gitee-tools ./install.sh /home/huqin/esp/esp-idf

我使用方式一安装

运行环境:

. $HOME/esp/esp-idf/export.sh

如果您需要经常运行 ESP-IDF,您可以为执行 export.sh 创建一个别名,具体步骤如下:

1、复制并粘贴以下命令到 shell 配置文件中(.profile, .bashrc, .zprofile 等)

vi ~/.bashrc //添加 alias get_idf='. $HOME/esp/esp-idf/export.sh' :wq source ~/.bashrc

2、通过重启终端窗口或运行 source [path to profile],如 source ~/.bashrc 来刷新配置文件。

现在您可以在任何终端窗口中运行 get_idf 来设置或刷新 esp-idf 环境。

配置:

//下面这个选择对应的型号或系列的芯片进行设置,这个操作会清除并且初始化之前配置好的设置 idf.py set-target [...] //下面我们执行指令进行配置 idf.py menuconfig //编译工程 idf.py build //烧录指令 中间的参数为波特率,默认 460800 若串口写入出错通过 chmod 777 /dev/ttyUSB0 设置权限重新烧录 idf.py -p PORT [-b BAUD] flash //监视输出 idf.py -p PORT monitor //也可以运行以下命令,一次性执行构建、烧录和监视过程 按下板子上的BOOT按键,再按下松开RST按键,最后松开BOOT按键, idf.py -p PORT flash monitor //退出监视器窗口按键: Ctrl + ]

芯片设置:

如果 IDF 监视器在烧录后很快发生错误,或打印信息全是乱码(见下),很有可能是因为您的开发板采用了 26 MHz 晶振,而 ESP-IDF 默认支持大多数开发板使用的 40 MHz 晶振

  1. 退出监视器。
  2. 返回 menuconfig。
  3. 进入 Component config –> Hardware Settings –> Main XTAL Config –> Main XTAL frequency 进行配置,将 CONFIG_XTAL_FREQ_SEL 设置为 26 MHz。
  4. 重新 编译和烧录 应用程序

监控界面:

参考链接:

【ESP32学习笔记】#通用篇#(1)简介及资料_JavonPeng的博客-CSDN博客_esp32简介

ESP32开发一_开发环境_esp32开发环境有哪些_huang20083200056的博客-CSDN博客

http://t.csdn.cn/WaVCx

http://t.csdn.cn/pJ1J1

docs/README-submodule-update.md · 乐鑫开源/esp-gitee-tools - Gitee.com

Ubuntu - 20.04系统安装乐鑫ESP-IDF工具链(2) --- 安装IDF_ubuntu espidf安装失败_优信电子的博客-CSDN博客

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

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

相关文章

高并发系统设计之负载均衡

本文已收录至Github,推荐阅读 👉 Java随想录 文章目录DNS负载均衡Nginx负载均衡负载均衡算法负载均衡配置超时配置被动健康检查与主动健康检查LVS/F5Nginx当我们的应用单实例不能支撑用户请求时,此时就需要扩容,从一台服务器扩容到…

【matplotlib】可视化解决方案——如何设置轴标签的透明度和大小

概述 Axes 标签对于读者理解图表非常重要,它描述了图表中展现的数据内容。通过向 axes 对象添加标签,可以有效理解图表所表达的内容。首先来了解一下 matplotlib 是如何组织图表的。最上层是一个 Figure 实例,包含绘图中所有可见和不可见的内…

北斗导航 | 2023 PTTI会议论文 2023 ITM会议论文 2022 ION GNSS+ 会议论文下载:ION 美国导航学会

===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 2023 PTTI会议论文 2023 ITM会议论文 2022 ION GNSS+ 论文下载百度云链…

Teradata当年数据仓库的“一哥”为何突然退出中国市场:苦撑了3年,员工早有预料

2月15日,Teradata天睿公司官宣即将撤离中国市场。 又是一个艰难的决定,听着似乎很熟悉。Teradata为什么突然宣布结束在中国的直营?其实,回顾Teradata在中国市场的发展状况,一点也不突然。 多年前,我曾经与…

Excel表格自动转Json数据

Excel表格转JSON格式在实际工作中,我们常常使用Excel记录各种数据,但在各种应用系统传输数据却使用JSON格式,这就需要把Excel转为JSON。如果能把数据转换传输过程自动化就更完美了。Excel转JsonXX公司生产日报表为例,生产工人用Ex…

JSR303基本使用以及整合springboot统一异常处理

目录 一、前言 什么是JSR303 二、JSR303基本使用(普通使用) 1)、引入jar包 2)、实体类对需要校验的数据进行校验 3)、对前端传递过来的参数进行限制 三、JSR303基本使用(分组校验) 1)、创建分组 2)…

leaflet 根据两个坐标值,设置arc弧线和Marker(079)

第069个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中根据提供的两个点,绘制出marker,同时将两点间绘制出一条弧线。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共88行)安装插件相关API参考…

最全面的SpringBoot教程(六)——SpringBoot运行原理分析

前言 本文为 最全面的SpringBoot教程(六)——SpringBoot运行原理分析 相关知识,下边将对SpringBoot运行原理以及自动配置原理进行详尽的分析介绍~ 📌博主主页:小新要变强 的主页 👉Java全栈学习路线可参考…

计算机网络 物理层

1,物理层的基本概念 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。现有的计算机网络中的硬件设备和传输媒体的种类非常繁多,而通信手段也有许多不同方式。物理层的作用正是要尽可能地屏蔽掉这…

【ts + webpack】贪吃蛇小游戏

目录 一、项目搭建 1.1 初始化项目 二、项目界面布局 三、完成Food类 四、完成记分牌类 五、初步完成snake类 六、创建游戏控制器类 - 键盘事件 七、GameControl - 使蛇移动 八、蛇撞墙和吃食检测 一、项目搭建 1.1 初始化项目 1.使用init命令生成package.json文件 …

日期时间控件my97初步探索

因为要写period entry 的项目,需要Report StartDate 和 Report EndDate,于是乎咨询前端同学,推荐my97 官方网站 http://www.my97.net/ 确实有点看起来古老的网站 点击下载能够下载包的资源,以及示例文件 demo示例、Api等 http…

Vue3使用Echarts实现自定义地图(使用阿里云数据可视化平台)

Vue3使用Echarts实现自定义地图 1.获取地图JSON文件 推荐使用 阿里云数据可视化平台 选择你想要使用地图区域并下载JSON文件 2.把地图JSON文件引入Vue3项目中 放在src/assets中 引入你想要使用地图的组件中 3.使用Echarts创建地图 准备地图容器 <template> <…

链路聚合基本概念

聚合组&#xff08;Link Aggregation Group&#xff0c;LAG&#xff09;&#xff1a;若干条链路捆绑在一起所形成的的逻辑链路。每个聚合组唯一对应着一个逻辑接口&#xff0c;这个逻辑接口又被称为链路聚合接口或Eth-Trunk接口。成员接口和成员链路&#xff1a;组成Eth-Trunk接…

win11/10+Azure kinect DK配置 VS2019/2017/2015的方法(简单,亲测可以)

首先下载文件&#xff1a;文件的下载和安装方法参考我的博客(131条消息) WIN11/win10Azure Kinect DK详细驱动配置教程&#xff08;亲测&#xff09;_Vertira的博客-CSDN博客安装好VS2019,创建好控制台c工程。这些都很简单&#xff0c;不细说。配置&#xff1a;首先配置环境变量…

如何快速掌握DDT数据驱动测试?

如何快速掌握DDT数据驱动测试&#xff1f; 目录&#xff1a;导读 前言 实施数据驱动步骤 数据驱动测试环境准备 测试步骤 数据存储 数据存在当前脚本中 json文件读取测试数据进行数据驱动测试 从xml读取数据进行数据驱动测试 总结 写在最后 前言 网盗概念相同的测试…

《Linux运维实战:Centos7.6基于docker-compose一键离线部署rabbitmq3.9.16+haproxy镜像模式高可用负载均衡集群》

一、部署背景 由于业务系统的特殊性&#xff0c;我们需要面向不通的客户安装我们的业务系统&#xff0c;而作为基础组件中的重要的一环&#xff0c;我们需要针对不同的客户环境需要多次部署 rabbitmq镜像模式高可用负载均衡集群&#xff0c;作为一个运维工程师&#xff0c;提升…

LeetCode 793. 阶乘函数后 K 个零

f(x) 是 x! 末尾是 0 的数量。回想一下 x! 1 * 2 * 3 * ... * x&#xff0c;且 0! 1 。 例如&#xff0c; f(3) 0 &#xff0c;因为 3! 6 的末尾没有 0 &#xff1b;而 f(11) 2 &#xff0c;因为 11! 39916800 末端有 2 个 0 。 给定 k&#xff0c;找出返回能满足 f(x) …

Django框架之类视图

类视图 思考&#xff1a;一个视图&#xff0c;是否可以处理两种逻辑&#xff1f;比如get和post请求逻辑。 如何在一个视图中处理get和post请求 注册视图处理get和post请求 以函数的方式定义的视图称为函数视图&#xff0c;函数视图便于理解。但是遇到一个视图对应的路径提供…

【Vue/基础知识】Vue基础知识(一)

如果觉得我的分享有一定帮助&#xff0c;欢迎关注我的微信公众号 “码农的科研笔记”&#xff0c;了解更多我的算法和代码学习总结记录。或者点击链接扫码关注 【Vue/基础知识】Vue基础知识&#xff08;一&#xff09; 1、v-show 和 v-if 指令的共同点和不同点&#xff1f; 共…

【建议收藏】2023年最新最全PMP 报考条件和流程在这里!

PMP考试是由美国项目管理协会PMI发起的项目管理专业人士资格认证考试&#xff0c;在中国国内由中国国际人才交流基金会举办考试&#xff0c;考生在报名参加PMP考试前了解下PMP考试报名条件和流程是必须要做的功课&#xff0c;下面我为大家详细介绍2023年PMP考试报名条件和流程&…