【ESP】一小时速通入门笔记

【ESP】一小时速通入门笔记

前言: 之前上学时就用过一次esp32, 当时初次使用搭建编译环境费了老大功夫.在我第一篇esp32笔记中也有说明.以至于我好像忘记记录完整的入门笔记了.最近因为工作需要又开始接触esp32才发现,现在已经方便得多了.顺利的话一小时速通.

前排提醒: 本笔记编写于 [2024年11月10日] ,随着时间的推移, 笔记中提到的官网链接和说明布局可能会有较大的变动.不过应该本质核心操作方向不会变.

一、准备ESP

  • esp3分为芯片,模组 ,开发板三类.
  • 一般就是是买模组然后根据需要为其制定外围电路.或是直接买开发板入门.
  • 最后都是为芯片编写程序,烧录程序.
    在这里插入图片描述

二、开始速通

  • 通过搜索引擎找到 esp32-idf 编程指南.
    在这里插入图片描述

  • 注意文档是持续更新的,所以你可能看到的模样和我不同.通过左边的下拉框可以查看和选择文档版本. 注意不同文档变化的位置较大.建议直接使用在文档中搜索功能.
    在这里插入图片描述

  • 下拉找到在win系统下的安装方法指导.在windown中开始创建工程. 注意不同文档变化的位置较大.建议直接使用在文档中搜索功能.
    在这里插入图片描述

  • 然后找到 ESP-IDF 工具安装器 的链接. 注意不同文档变化的位置较大.建议直接使用在文档中搜索功能.
    在这里插入图片描述

  • 选择第一个在线安装或第三个离线安装. 截止目前为止,安装的esp-ide并不好用.所以不建议选第二个.
    在这里插入图片描述

  • 下载好后放在没有中文,没有空格的路径下.
    在这里插入图片描述

  • 开始傻瓜式下一步
    在这里插入图片描述
    在这里插入图片描述

  • 注意:这一步是检查安装环境,检查完后要点击应用修复.修复完后才能点击下一步!
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 注意: 这里的安装路径不能有中文和空格!!!
    在这里插入图片描述
    在这里插入图片描述

  • 选择完全安装, 反正东西不多.注意这里提到的python,git,esp-idf,IDF_TOOLS_PATH.安装器主要就是安装这几个东西. 之后会反复提到. 然后idf里包含了几个"芯片包",ESP32,ESP32-C3等等…
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

  • 最后安装完成.检查一下系统的环境变量.IDF_TOOLS_PATH.

  • 还有在PATH中添加idf-git工具和idf-python工具的路径!!!
    在这里插入图片描述
    在这里插入图片描述

  • 还有其他环境变量, 比如IDF_PATH, 目前不是必须, 就略过.

  • 如果不使用安装自带的终端,才会用到 .
    在这里插入图片描述

  • 安装完后会有2个终端的快捷方式.直接打开就会加载所需的所有环境变量.
    在这里插入图片描述
    在这里插入图片描述

  • 到idf路径内拷贝1个经典的hello_word例程试试.记得要拷贝出来,不要玷污了原本的idf.
    在这里插入图片描述
    在这里插入图片描述

  • 然后在打开的idf终端里进行cd跳转.
    在这里插入图片描述

  • 开始之前先确认一下,手头上的esp32是系列.具体可以到官网查.然后先切换指定"芯片包".就是一开始安装时提示的那些esp32系列.

  • 使用idf.py set-target {***}命令切换,括号内就是芯片包的简称.默认就是eps32,可以不用切换.
    在这里插入图片描述

  • 调用idf.py build编译.初次编译会相当慢!
    在这里插入图片描述
    在这里插入图片描述

  • 编译完成后要下载, 需要准备一个usb转ttl的工具.淘宝有很多款式售卖.注意,最好包含DTRRTS引脚功能的.
    在这里插入图片描述

  • esp32的GPIO0就是BOOT引脚,使用的串口烧录,所以要下拉接地.

  • esp32的CIHP_PU就是RESET引脚,烧录瞬间要是复位的起始状态.

  • 如果你的usb转ttl工具没有DTRRTS引脚功能,那就要手动将GPIO0接地,和CIHP_PU复位电平,或是手动断电上电复位. 梦回51烧录.
    在这里插入图片描述

  • 接好线后就可以开始烧录了.idf.py {-p COM8} flash. 如果不指定端口号, 那么终端会自己遍历所有能用的端口号挨个尝试.查看端口可以通过串口工具或是win的设备管理器,不赘述了.
    在这里插入图片描述在这里插入图片描述

  • 烧录完成后可以通过idf.py {-p COM8} monitor打开串口监视器,看看到模块的复位日志(绿色), 和打印的内容(白色).按组合快捷键Ctrl+]退出监视器.
    在这里插入图片描述

  • 然后我们可以打开工程的hello_world_main.c文件,随便改点打印内容.然后重新编译,再监听.看看效果.
    在这里插入图片描述
    在这里插入图片描述

  • 至此就算玩成最基本的操作,建立工程,修改,编译,下载,监听.

  • 另外,esp支持图形化修改程序.使用idf.py menuconfig [--help]指令打开.加个后缀--help可以查看更多说明.这里不赘述了.

  • 这个功能其实是基于工程的规范性给出的.esp库定义了很多宏定义,修改宏定义值相应的功能就会被修改.但是普通人开发很多根本不按照预定规范,所以实际上这个功能用不起来.
    在这里插入图片描述

  • 最后还缺一个IDE,官方安装器中自带的ide是魔改的Espressif,非常不好用,卡得要死,而且安装后不能立刻用,还要改设置和编译工具.我至今一次没成功过.

  • 一般推荐使用免费开源的VS Code,轻量级,直接官网下载安装包或压缩包.解压即用.
    在这里插入图片描述

官网好像将下载页面藏起来不给人下载zip版.目前通过其他大佬分享找到:
(2023)最新VSCode安装包(.zip版本),解压缩直接用
https://blog.csdn.net/qq_47574956/article/details/131221381

  • 解压就用,然后选择文件夹,打开.c文件.
    在这里插入图片描述
    在这里插入图片描述

  • 提示需要一个插件,识别c/c++文件.点击自动安装,或者手动搜素安装.
    在这里插入图片描述

  • 安装好后会提示选择编译链,略过.然后会提示找不到头文件.
    在这里插入图片描述

  • 把鼠标放上去,就会提示添加/修改头文件路径(第一个).
    在这里插入图片描述

  • 点击后可能会跳到这个c/c++页面, 同时会在工程目录生成一个.vscode/c_cpp_properties.json配置文件.直接修改它就好了.
    在这里插入图片描述

ESP32的ESP-IDF在VScode工程下,头文件标红警告、报错、无法跳转
https://blog.csdn.net/weixin_49337111/article/details/135167692#comments_35196774
vscode使用compile_commands.json配置includePath环境
https://blog.csdn.net/qq_37868450/article/details/105013325

  • "configurations"内添加"compileCommands": "${workspaceFolder}/build/compile_commands.json".注意 这里引用了一个编译生存的.json, 也就是说要编译后才存在的!!!
    在这里插入图片描述

  • 这个时候就不会报错了.不过你可能还是无法跳转,缺少一个esp插件.
    在这里插入图片描述

  • 在应用里搜索ESP-IDF插件,并下载安装.
    在这里插入图片描述

  • 然后整个vscode就多了很多的东西.左边多了一个esp图标,点击会有一列菜单选项.底部会有esp工程相关的.

  • 从左到右分别是idf版本选择,端口号选择,芯片包选择,等等,编译,烧录,清空编译,监听等功能也在其中.
    在这里插入图片描述

  • 先配置一下esp插件的内容点击下图中Configure ESP-IDF Extension,会弹出界面ESP-IDF Setup,选择第三个USE EXISTING SETUP已有的目录.选择第一个是在线下载安装.我们已经安装并验证好idf了,这里直接选择已有目录.
    在这里插入图片描述

  • 检查一下路径对不对.idf,python,git,三者的路径.
    在这里插入图片描述

  • 然后就算完成配置了,左下角会显示idf的版本号,并且弹出这个启动页面.可以创建和导入工程,还有查看例程.例程的路径上面已经说过了,如果看到合适的就可以直接拷贝出来测试.
    在这里插入图片描述

  • 这个时候再回到hellow_world_main.c就可以对头文件跳转定义,打开esp库查看了.
    在这里插入图片描述

  • 还有更多的其他功能和设置我就不赘述了.不如设置端口号,选择下载方式.点击小火图标就可以编译,下载,监听一条龙服务.
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 操作一样,输入Ctrl+]退出监听;
    在这里插入图片描述

  • 至此就算全部结束了.

  • 总结下来就是安装ESP-IDF,自带了pythongit.使用idf.py进行编译,下载,监听等操作.

  • 如果是linux系统,可能会使用CMake方式进行同样的操作,前缀换成了make.之前我学linux弄ROS系统时,就是这么编译操作的.

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

22.04Ubuntu---ROS2使用rclcpp编写节点C++

节点需要存在于功能包当中,功能包需要存在于工作空间当中。 所以我们要想创建节点,就要先创建一个工作空间,再创建功能包。 第一步:创建工作空间 mkdir -p chapt2_ws/src/ 第二步:创建example_cpp功能包&#xff0c…

QML项目实战:自定义CheckBox

目录 一.添加模块 import QtQuick.Controls 1.2 import QtQuick.Controls.Styles 1.4 import QtGraphicalEffects 1.15 二.自定义CheckBox 1.CheckBox设置 2.勾选框设置 3.标签部分 4. 状态变化处理 5.文本设置 三.效果 1.当enabled为true 2.当enabled为true 3.当…

【Git】Liunx环境下Git的使用:“克隆,提交,推送“

目录 一、常用参数 二、我们为什么要使用Git? 三、创建远程仓库 第一步:创建对应代码托管平台账号。 第二步:在托管平台创建仓库 第三步:完善仓库内容(选择性使用) 开源和私有 四、克隆远程仓库到本…

《Python网络安全项目实战》项目4 编写网络扫描程序

《Python网络安全项目实战》项目4 编写网络扫描程序 项目4 编写网络扫描程序任务4.1 扫描内网有效IP地址任务描述任务分析任务实施任务拓展 任务4.2 编写端口扫描工具任务描述任务分析任务实施相关知识任务评价任务拓展项目评价 项目4 编写网络扫描程序 许多扫描工具是由Pytho…

软件设计开发规程,制度(word原件)

技术解决方案过程包括: 1、选择最佳解决方案; 2、制定架构设计; 3、制定概要设计; 4、制定详细设计和数据库设计; 5、利用准则进行接口设计; 6、实现设计; 7、进行单元测试; 8、进行…

Spring Boot框架的知识分类技术解析

2 开发技术 2.1 VUE框架 Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架。 Vue 只关注视图层, 采用自底向上增量开发的设计。 Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。 2.2 Mysql数据库 …

Knowledge Graph-Enhanced Large Language Models via Path Selection

研究背景 研究问题:这篇文章要解决的问题是大型语言模型(LLMs)在生成输出时存在的事实不准确性,即所谓的幻觉问题。尽管LLMs在各种实际应用中表现出色,但当遇到超出训练语料库范围的新知识时,它们通常会生…

Spark中的宽窄依赖

一、什么是依赖关系 这里通过一张图来解释: result_rdd是由tuple_rdd使用reduceByKey算子得到的, 而tuple_rdd是由word_rdd使用map算子得到的,word_rdd又是由input_rdd使用flatMap算子得到的。它们之间的关系就称为依赖关系! 二…

实现uniapp-微信小程序 搜索框+上拉加载+下拉刷新

pages.json 中的配置 { "path": "pages/message", "style": { "navigationBarTitleText": "消息", "enablePullDownRefresh": true, "onReachBottomDistance": 50 } }, <template><view class…

在vscode中如何利用git 查看某一个文件的提交记录

在 Visual Studio Code (VSCode) 中&#xff0c;你可以使用内置的 Git 集成来查看某个文件的提交历史。以下是具体步骤&#xff1a; 使用 VSCode 内置 Git 功能 打开项目&#xff1a; 打开你的项目文件夹&#xff0c;确保该项目已经是一个 Git 仓库&#xff08;即项目根目录下…

如何用python求导数

打开python运行环境。 导入微分的模块包&#xff1a;from sympy import *。 定义符号变量&#xff1a;x symbols(x) 定义一个函数&#xff1a;f x**9 diff diff(f,x)求导 最后输入diff&#xff0c;即可显示其变量值了。

Protobuf——基本使用

什么是Protobuf Protobuf是 Google的⼀种语⾔⽆关、平台⽆关、可扩展的序列化结构数据的⽅法&#xff0c;它可⽤于&#xff08;数据&#xff09;通信协议、数据存储等。 Protobuf类比于XML&#xff0c;是一种灵活&#xff0c;高效&#xff0c;自动化机制的结构数据序列化方法&…

【人工智能】ChatGPT多模型感知态识别

目录 ChatGPT辅助细化知识增强&#xff01;一、研究背景二、模型结构和代码任务流程一&#xff1a;启发式生成 三、数据集介绍三、性能展示实现过程运行过程训练过程 ChatGPT辅助细化知识增强&#xff01; 多模态命名实体识别&#xff08;MNER&#xff09;最近引起了广泛关注。…

Spring源码(十二):Spring MVC之Spring Boot

本篇将详细讨论Spring Boot 的启动/加载、处理请求的具体流程。我们先从一个简单的Spring Boot项目日志开始分析&#xff08;这里假设读者已经仔细阅读完了前面的文章&#xff0c;且对Spring源码有一定深度的了解&#xff0c;否则会看得一脸懵逼&#xff09;。 本文为2024重置…

c语言-教零基础/新手入门

C 简介 一提到语言这个词语&#xff0c;自然会想到的是像英语&#xff0c;汉语等这样的自然语言&#xff0c;因为它是人和人交换信息不可缺少的工具。而今天计算机普遍了我们生活的每一个角落&#xff0c;除了人和人的相互交流之外&#xff0c;我们必须和计算机交流。就像人类…

【安装配置教程】二、VMware安装并配置ubuntu22.04

一、准备&#xff1a; 虚拟机安装ubuntu&#xff0c;首先要先找到一个镜像&#xff0c;可以去ubuntu官方下载一个&#xff0c;地址&#xff1a;下载Ubuntu桌面系统 | Ubuntu&#xff0c;下载好iso的镜像文件后保存好&#xff0c;接下来打开VMware。 二、安装&#xff…

立体视觉的核心技术:视差计算与图像校正详解

立体视觉的核心技术&#xff1a;视差计算与图像校正详解 在立体视觉中&#xff0c;通过双目相机&#xff08;即左右两台相机&#xff09;的不同视角捕获的图像&#xff0c;结合几何关系&#xff0c;我们可以推算出场景中物体的深度。本文将深入讲解如何基于视差&#xff08;di…

深度学习基础练习:从pytorch API出发复现LSTM与LSTMP

2024/11/5-2024/11/7&#xff1a; 前置知识&#xff1a; [译] 理解 LSTM(Long Short-Term Memory, LSTM) 网络 - wangduo - 博客园 【官方双语】LSTM&#xff08;长短期记忆神经网络&#xff09;StatQuest_哔哩哔哩_bilibili 大部分思路来自于&#xff1a; PyTorch LSTM和LSTMP…

scala学习记录,Set,Map

set&#xff1a;集合&#xff0c;表示没有重复元素的集合&#xff0c;特点&#xff1a;唯一 语法格式&#xff1a;val 变量名 Set [类型]&#xff08;元素1&#xff0c;元素2...&#xff09; 可变不可变 可变&#xff08;mutable&#xff09;可对元素进行添加&#xff0c;删…

Docker了解

Docker是一种容器化技术&#xff0c;它可以将应用程序和其依赖项打包到一个独立的、可移植的容器中&#xff0c;以便在不同的环境中运行。Docker基于Linux操作系统的容器化技术&#xff0c;可以提供更轻量、更快速、更灵活、更一致的应用部署和管理方式。 Docker的基本概念包括…