【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.xdnf.cn/news/11535.html

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

相关文章

海量小文件挑战下的CephFS:优化策略与实践探索

文章目录 1.背景2.基本概念2.1 CephFS IO流程2.2 Ceph-FUSE 3. 问题3.1 问题源起3.2 理论分析3.3 原因排查3.3.1 Ceph-FUSE日志分析3.3.2 提出猜想3.3.3 代码验证3.3.3.1 MDS端3.3.3.2 Ceph-FUSE端 3.4 小结 1.背景 随着大数据、人工智能技术的蓬勃发展,人类对于算…

团队发展与个人价值的共生

一、团队属性 团队的本质属性,在很大程度上表现为一种选择性和甄别性,即排外与排异。这意味着团队需要筛选出具有相同目标、价值观以及能力互补的成员,以达成高效的协作与共同进步。在团队运作的过程中,首要任务是明确并深入理解…

git命令及原理

git: 目录则被称之为“树” 文件被称作 Blob 对象. git help <command>: 获取 git 命令的帮助信息 git init: 创建一个新的 git 仓库&#xff0c;其数据会存放在一个名为 .git 的目录下 git status: 显示当前的仓库状态 git add <filename>: 添加文件到暂存区 git …

大模型的记忆困境:平衡持续学习与灾难性遗忘

1. 引言 持续学习是智能的关键方面。它指的是从非平稳数据流中增量学习的能力&#xff0c;对于在非平稳世界中运作的自然或人工智能体来说是一项重要技能。人类是优秀的持续学习者&#xff0c;能够在不损害先前学习技能的情况下增量学习新技能&#xff0c;并能够将新信息与先前…

实时高效,全面测评快递100API的物流查询功能

一、引言 你是否曾经在网购后焦急地等待包裹&#xff0c;频繁地手动刷新订单页面以获取最新的物流信息&#xff1f;或者作为一名开发者&#xff0c;正在为如何在自己的应用程序中高效地实现物流查询功能而发愁&#xff1f;其实&#xff0c;有一个非常好用的解决方案——快递10…

HR人才评价系统软件选择攻略

企业对人力资源管理价值的日益认同&#xff0c;人才评价系统软件市场迎来了蓬勃发展的春天。在数字化转型的浪潮中&#xff0c;企业对人才的多元化需求愈发明显&#xff0c;传统的评价手段已难以跟上时代的步伐。因此&#xff0c;人才评价系统软件应运而生&#xff0c;迅速成为…

蓝桥杯真题——good-sequence(C语言)

问题描述 一个序列 [b1,b2,...,bm] 若对于 2≤i≤m 满足 bi≤b1 &#xff0c;则称为好序列。 现在给定 [a1,a2,...,an] &#xff0c;求对于该序列的每一个后缀 [ak,ak1,...,an](1≤k≤n)最少能划分成多少个好序列。 输入格式 第一行包含一个整数 n &#xff0c;表示数组 a …

智慧煤矿可视化管理平台

通过图扑可视化平台集成实时数据采集&#xff0c;提供对煤矿生产、安全及环境监测等多方面的二三维动态展示。通过优化资源调度和风险预警&#xff0c;提高了煤矿运营效率和安全性&#xff0c;支持科学决策与管理。

华为ISC供应链服务运营:流程、组织、治理与绩效管理的综合框架

华为整合物流服务&#xff08;Integrated Logistics Services&#xff0c;简称ILS&#xff09;是华为推出的一项旨在提升供应链效能和敏捷性的创新举措。以下是关于华为ILS运营模式设计的详细分析&#xff1a; 一、运营模式设计的核心目标 华为ILS运营模式设计的核心目标是实…

优化时钟网络之时钟偏移

Note&#xff1a;文章内容以Xilinx 7系列FPGA进行讲解 1、基本介绍 所谓时钟偏移&#xff08;Clock Skew&#xff09;&#xff0c;是指在同步时序电路中&#xff0c;同一个时钟信号到达各个寄存器时钟端口的时间不一致的现象。如下图所示&#xff1a; 时钟从源端到达寄存器FF1的…

华为ENSP路由器出现41解决方法之一

我解决这个问题的方法&#xff1a; 这个方法很简单 一&#xff0c;首先我们打开电脑上的Oracle VM VirtualBox&#xff0c;找到AR_Base(ARse_Link) ,右键删除 二&#xff0c;打开ENSP模拟器&#xff0c;选择一个AR系列路由器并启动&#xff0c;在时候ENSP会提示&#xff1a;未…

17RAL_Visual-Inertial Monocular SLAM with Map Reuse

文章目录 累啊Abstract1.Introduction2.视觉-惯性基本原理 (VISUAL-INERTIAL PRELIMINARIES)3. 视觉惯性 ORB-SLAM (VISUAL-INERTIAL ORB-SLAM)A.TrackingB. Local MappingC. Loop Closing 4.IMU INITIALIZATIONA. 陀螺仪偏置估计B. 尺度和重力的近似&#xff08;无加速度计偏置…

鸿蒙应用开发实践示例:创建首页

鸿蒙应用开发实践示例&#xff1a;创建首页 效果示例图示例代码 效果示例图 示例代码 import { window } from kit.ArkUI;Entry Component struct Index {//Provide和Consume&#xff0c;应用于与后代组件的双向数据同步&#xff0c;应用于状态数据在多个层级之间传递的场景Pr…

StringUtils 工具类

在日常的编程工作中&#xff0c;字符串&#xff08;String&#xff09;处理是一个非常常见且重要的任务。无论是字符串的判空、截取、转换大小写、分隔、比较&#xff0c;还是去除多余空格、拼接、使用正则表达式等操作&#xff0c;都需要我们编写大量的代码来处理各种边界情况…

【视觉SLAM】Windows下编译Pangolin-0.5,显示SLAM运动轨迹

1. 三方库配置 Pangolin v0.5 eigen3 v3.3.8 glew v2.1.0 1.1 glew eigen3 glew&#xff1a;直接下载预编译版本即可&#xff08;注意&#xff1a;查看自己电脑显卡支持的OpenGL版本&#xff0c;下载支持对应版本的glew&#xff0c;不然无法显示窗口&#xff09;&#xff1b;e…

人工智能、机器学习与深度学习:层层递进的技术解读

引言 在当今科技快速发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;已经成为一个热门话题&#xff0c;几乎渗透到了我们生活的方方面面。从智能手机的语音助手&#xff0c;到自动驾驶汽车&#xff0c;再到医疗诊断中的图像识别&#xff0c;人工智能的应用正在改变我…

如何构建数仓中的维度拉链表

1 什么是拉链表 1&#xff09;拉链表是针对数据仓库设计中表存储数据的方式而定义的&#xff0c;顾名思义&#xff0c;所谓拉链&#xff0c;就是记录历史。记录一个事物从开始&#xff0c;一直到当前状态的所有变化的信息。 2&#xff09;使用拉链表既能满足反应数据的历史状…

后端SpringBoot学习项目-项目基础搭建

IDEA创建SpringBoot项目 大佬文章&#xff0c;有基础者可以直接打开参考。我这个记录的是纯纯小白的步骤 创建项目 按钮新建 点击按钮-----新建项目 弹窗配置–生成器 弹窗中选择生成器 ---- Spring Initializr ○ 服务器URL修改为 start.springboot.io start.aliyun.co…

Android CarrierConfig 参数项和正则匹配逻辑

背景 在编写CarrierConfig的时候经常出现配置不生效的情况&#xff0c;比如运营商支持大范围的imsi&#xff0c;或者是测试人员写卡位数的问题等等&#xff0c;因此就需要模式匹配&#xff08;包含但不限于正则表达式&#xff09;。 基本概念: 模式匹配涉及定义一个“模式”&a…

《青牛科技 GC6125:驱动芯片中的璀璨之星,点亮 IPcamera 和云台控制(替代 BU24025/ROHM)》

一、GC6125 在 IPcamera 和云台控制中的卓越表现 驱动能力&#xff1a;为监控注入强劲动力 GC6125 作为一款专为 IPcamera 和云台控制而设计的驱动芯片&#xff0c;拥有令人惊叹的驱动能力。在云台电机的驱动方面&#xff0c;它就像一位技艺精湛的驭手&#xff0c;能精准地掌控…