【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系统时,就是这么编译操作的.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux【基础篇】

-- 原生罪 linux的入门安装学习 什么是操作系统? 用户通过操作系统和计算机硬件联系使用。桥梁~ 什么是Linux? 他是一套开放源代码(在互联网上找到Linux系统的源代码,C语言写出的软件),可以自由 传播&…

Golang | Leetcode Golang题解之第540题有序数组中的单一元素

题目&#xff1a; 题解&#xff1a; func singleNonDuplicate(nums []int) int {low, high : 0, len(nums)-1for low < high {mid : low (high-low)/2mid - mid & 1if nums[mid] nums[mid1] {low mid 2} else {high mid}}return nums[low] }

Python学习从0到1 day26 第三阶段 Spark ⑤ 搜索引擎日志分析

目录 一、搜索引擎日志分析 二、需求1&#xff1a;热门搜索时间段(小时精度)Top3 实现步骤 三、需求2&#xff1a;打印输出:热门搜索词Top3 实现步骤 四、需求3&#xff1a;打印输出:统计hadoop关键字在哪个时段被搜索最多 实现步骤 五、需求4&#xff1a;将数据转换为JSON格式…

Pr:视频过渡快速参考(合集 · 2025版)

Adobe Premiere Pro 自带七组约四十多个视频过渡 Video Transitions效果&#xff0c;包含不同风格和用途&#xff0c;可在两个剪辑之间创造平滑、自然的转场&#xff0c;用来丰富时间、地点或情绪的变化。恰当地应用过渡可让观众更好地理解故事或人物。 提示&#xff1a; 点击下…

Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多变量回归预测

Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多变量回归预测 目录 Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多变量回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多变量回归预…

多模态大模型技术方向和应用场景

多模态大模型&#xff08;Multimodal Large Language Models&#xff0c;MLLM&#xff09;是一种结合了大型语言模型&#xff08;LLM&#xff09;和大型视觉模型&#xff08;LVM&#xff09;的深度学习模型&#xff0c;它们能够处理和理解多种类型的数据&#xff0c;如文本、图…

用 Python 从零开始创建神经网络(四):激活函数(Activation Functions)

激活函数&#xff08;Activation Functions&#xff09; 引言1. 激活函数的种类a. 阶跃激活功能b. 线性激活函数c. Sigmoid激活函数d. ReLU 激活函数e. more 2. 为什么使用激活函数3. 隐藏层的线性激活4. 一对神经元的 ReLU 激活5. 在隐蔽层中激活 ReLU6. ReLU 激活函数代码7. …

从0到1基于LangChain制作一个AI猫娘

前言&#xff1a; 看到B站上的AIVtuber的项目落地了&#xff0c;就心血来潮想制作一个AI的猫娘供自己使用&#xff0c;顺便出一个简单的教程&#xff0c;跳过理论&#xff0c;直接实践&#xff0c;作者也还在学习摸索中&#xff0c;所以有错误可以直接在评论区指正。&#xff0…

【R78/G15 开发板测评】串口打印 DHT11 温湿度传感器、DS18B20 温度传感器数据,LabVIEW 上位机绘制演化曲线

【R78/G15 开发板测评】串口打印 DHT11 温湿度传感器、DS18B20 温度传感器数据&#xff0c;LabVIEW 上位机绘制演化曲线 主要介绍了 R78/G15 开发板基于 Arduino IDE 环境串口打印温湿度传感器 DHT11 和温度传感器 DS18B20 传感器的数据&#xff0c;并通过LabVIEW上位机绘制演…

【CAE SDK】CEETRON 28年应用案例——以船舶、结构仿真、材料成型领域为例

随着计算机辅助工程&#xff08;CAE&#xff09;技术的不断发展&#xff0c;虚拟仿真工具在工程设计、分析和优化中发挥着越来越重要的作用。CAE系统涵盖了前处理、求解、后处理等多个环节&#xff0c;极大地提升了工程仿真的准确性和效率。 CEETRON SDK作为虚拟仿真领域的一款…

ThingsBoard规则链节点:RPC Call Reply节点详解

引言 1. RPC Call Reply 节点简介 2. 节点配置 2.1 基本配置示例 3. 使用场景 3.1 设备控制 3.2 状态查询 3.3 命令执行 4. 实际项目中的应用 4.1 项目背景 4.2 项目需求 4.3 实现步骤 5. 总结 引言 ThingsBoard 是一个开源的物联网平台&#xff0c;提供了设备管理…

基于深度学习的路面裂缝检测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a 3.部分核心程序 &#xff08;完整版代码包含详细中文注释和操作步骤视频&#xff09…

“心玲守护”乡村孩子的一片天公益活动在10所学校开展

2023年9月—2024年10月期间&#xff0c;由林志玲女士发起、中国乡村发展基金会支持&#xff0c;并联合重庆市渝中区红樱桃义工协会执行的“心玲守护”乡村孩子的一片天——儿童青少年心理健康援助项目活动&#xff0c;已在重庆市万州区、璧山区、巫山县和湖南省益阳市区域内的1…

计算机网络——1.1计算机网络概述

计算机网络——计算机网络概念 前言 计算机网络是计算机学习中必不可少的一环&#xff0c;甚至可以说&#xff0c;是离我们普通人日常生活最近的计算机知识。为什么呢&#xff1f;因为我们上网上网&#xff0c;都离不开计算机网络&#xff0c;打游戏&#xff0c;刷剧&#xff…

使用HtmlAgilityPack+PuppeteerSharp+iText7抓取IdentityServer4帮助文档

需要学习IdentityServer4的用法&#xff0c;但是在IdentityServer4帮助文档网站&#xff08;参考文献1&#xff09;中没有找到下载离线文档的地方&#xff0c;准备使用HtmlAgilityPackPuppeteerSharpiText7将网站内容抓取生成离线PDF文档&#xff0c;便于本机学习、查看。   …

热烈庆祝,2024年11月9日(星期六)骑行马刺沟顺利结束

晨光微露&#xff1a;蓄势待发清晨的第一缕阳光穿透薄雾&#xff0c;照亮了集合现场。我们校长群的骑行爱好者们早早地聚集在约定地点&#xff0c;检查装备、调整车辆&#xff0c;彼此间寒暄着&#xff0c;兴奋之情溢于言表。随着一声令下&#xff0c;队伍正式出发&#xff0c;…

python数据分析|二 IPython和JupyterNotebooks

一 python 解释器 Python解释器同一时间只能运行一个程序的一条语句。 如何适用&#xff1a; win r cmd 要退出Python解释器返回终端&#xff0c;可以输入 exit() 或 Ctrl-D。 假设创建了一个 hello_world.py 文件&#xff0c;它的内容是&#xff1a; 可以用下面的命令运…

【持续更新】【NLP项目】【自然语言处理】智能聊天机器人——“有问必答”【Chatbot】第2章、《模式一:问候模式》

智能聊天机器人——“有问必答” 【注】该项目已开源&#xff0c;开源地址为&#xff1a;链接&#xff0c;代码更新可能不及时。 第2章、《模式一&#xff1a;问候模式》 主窗体的布局如下图所示&#xff1a; 共九种功能模式&#xff0c;最下方为关闭窗口按钮。 点击问候模…

@RestController 源码解读:解决 Web 开发中 REST 服务的疑难杂症

目录 一、RestContrller注解 1.1 查看底层源码 1.2 AliasFor注解说明 1.2.1 注解别名 1.2.2 元数据别名 1.3 value() 方法的作用 一、RestContrller注解 1.1 查看底层源码 首先编写如下内容&#xff1a; RestController public class TestController {} 按住 Ctrl &am…

【Android】轮播图——Banner

引言 Banner轮播图是一种在网页和移动应用界面设计中常见的元素&#xff0c;主要用于在一个固定的区域内自动或手动切换一系列图片&#xff0c;以展示不同的内容或信息。这个控件在软件当中经常看到&#xff0c;商品促销、热门歌单、头像新闻等等。它不同于ViewPgaer在于无需手…