ESP32_IDF前端命令开发全过程

ESP32 IDF前端命令开发全过程

  • 开端
  • 1. 创建新工程(create-project)
  • 2. 创建新组件(create--component)
    • 目前文件结构
  • 3. 设置目标芯片
  • 4. 配置项目
  • 5. 编译工程
  • 6. 烧录程序
  • 7. 打开监视器
  • 8. 一次性编译烧录并打开监视器
  • 9. 擦除设备flash
  • 10. 查询内存剩余
  • 11. 清除编译文件

仅供本人查阅

开端

如需在 ESP32 上使用 ESP-IDF,请安装以下软件:
ESP-IDF Windows Installer Download
Linux 和 macOS 平台 Installer Download
设置 工具链,用于编译 ESP32 代码;
编译构建工具 —— CMake 和 Ninja 编译构建工具,用于编译 ESP32 应用程序;
获取 ESP-IDF 软件开发框架。该框架已经基本包含 ESP32 使用的 API(软件库和源代码)和运行 工具链 的脚本。

在这里插入图片描述

1. 创建新工程(create-project)

“idf.py create-project-path ”是ESP-IDF提供的一个命令,用于创建一个新的项目目录结构,并将必要的义件和模板复制到该目录中。

idf.py create-project wlj_led

── wlj_led
──├──main
────├──wlj_led.c
────├──CMakeLists.txt
──├──CMakeLists.txt

2. 创建新组件(create–component)

“idf.py create-component:”创建一个新的组件,包含构建所需的最基本文件集。一般存放第三方组件,如编写的驱动程序等。
下面是这个命令的参数解析和使用方法。

cd led
idf.py create-component led

在这里插入图片描述
── led
──├──include
──────├──led.h
──├──led.c
──├──CMakeLists.txt

mkdir components
mv led C:\Users\93254\Desktop\esp32s3_test\wlj_led\components

在这里插入图片描述

── components
──├──led
────├──include
────────├──led.h
────├──led.c
────├──CMakeLists.txt

目前文件结构

── wlj_led
──├── main
────├── wlj_led.c
────├── CMakeLists.txt
──├── components
──├──├── led
──├────├── include
──├────────├── led.h
──├────├── led.c
──├────├── CMakeLists.txt
──├── CMakeLists.txt

3. 设置目标芯片

“ idf.py set-target ”命令用于设置工程的目标芯片。由于ESP-DF支持多款乐鑫SoC芯片,新建工程时默认会选择ESP2类型的芯片。因此,如果我们希望创建个针对ESP32-S3类型的工程,就必须使用此命令来指定该工程的目标芯片为ESP32-S3。
target :目标芯片,可使用“idf.py --list-targets”命令查看支持的芯片类型。

idf.py --list-targets

在这里插入图片描述
设置工程的目标芯片

idf.py set-target esp32s3

编译工程并生成 sdkconfig

注意:“idf.py set-target’”命令将清除构建目录,并从头开始重新生成sdkconfig文件。旧的sdkconfig文件将保存为sdkconfig.old。

4. 配置项目

“idf.py menuconfig”这个命令会启动一个文本用户界面,允许开发者为他们的ESP32或其他Espressif SoC芯片系列的项目配置各种选项。如下图所示:

idf.py menuconfig

选择component config–>FreeRTOS–>然后单核就选中Run FreeRTOS only on first core,双核就不选。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5. 编译工程

编写wlj_led.c

#include <stdio.h>void app_main(void)
{printf("Hello MEIYOUYUDI");
}

“idf.py build”命令用来编译当前项目工程。如下所示:

idf.py build

6. 烧录程序

“idf.py -p PORT flash”这个命令用来把编译出来的可执行文件烧录到ESP32-S3芯片当中。
注意:烧录之前必须调用“idf.py build’”命令编译项目工程,编译完成后方能烧录代码。

比如:windows下COM3口:

cd build
idf.py -p COM3 flash

linux下ACM0口:

idf.py -p dev/ttyACM0 flash

查询Linux下的烧录口:
输入指令:ls /dev/tty* 插上设备后多出来的就是对应的烧录口

在这里插入图片描述
ESP32烧录bin,乐鑫下载工具使用flash_download_tool
ESP32【分区表】

7. 打开监视器

“idf.py -p PORT monitor’”命令用来监控当前项目。监控之前必须安装USB虚拟串口驱动以及开发
板上的USB串口接入到电脑当中,才能监控当前项目工程。

注意:请按“Ctl+]”快捷键退出监控器

idf.py -p COM3 monitor

在这里插入图片描述

8. 一次性编译烧录并打开监视器

idf.py -p COM3 flash monitor
idf.py -p /dev/ttyACM0 flash monitor

9. 擦除设备flash

idf.py -p PORT erase_flash

10. 查询内存剩余

idf.py size

在这里插入图片描述

11. 清除编译文件

①“idf.py clean’”命令
②“idf.py fullclean”命令
②这个命令则更为彻底,它会删除整个build目录下的所有内容,包括所有的CMake配置输出文件。这意味若下次构建项目时,CMake将需要从头开始配置项目,重新生成所有的构建输出文件。

idf.py fullclean

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Ribbon 添加快速访问区域

添加快速访问区域挺简单的&#xff0c;实例如下所示&#xff1a; void QtRightFuncDemo::createQuickAccessBar() { RibbonQuickAccessBar* quickAccessBar ribbonBar()->quickAccessBar(); QAction* action quickAccessBar->actionCustomizeButton(); act…

编译一个基于debian/ubuntu,centos,arhlinux第三方系统

目录 前言 准备工作 下载linux源码进行编译 linux源码下载 网站 问题 解决办法 编译 可能会遇到的问题 chroot下载debian环境 进入虚拟环境 把chroot的根目录文件打包为.gz文件 编译init文件&#xff08;用于系统启动时的一系列引导&#xff09; 给予文件夹权限 …

本地环境搭建

右键点击Anaconda 安装包&#xff0c;选择 以管理员身份运行 Anaconda 安装包 选择 Install for all Users 根据自己的情况选择安装路径&#xff0c; 点击 next 之前&#xff0c;复制安装路径 第三项可不选&#xff0c;点击 Install 进行安装 整个安装过程大约费时 10min &am…

SpringBoot 3.x + Swagger3 踩坑实录

问题描述 维护的SpringBoot版本是3.0版本&#xff0c;翻教程的时候发现很多SpringBoot2.x版本用的都是springfox&#xff0c;但问题是在SpringBoot3.x版本后&#xff0c;逐渐不支持springfox&#xff0c;强行启动会导致异常&#xff0c;现阶段使用的Springdoc进行替换。 参考…

ruoyi element-ui 实现拖拉调整图片顺序

ruoyi element-ui 实现拖拉调整图片顺序 安装sortablejs https://sortablejs.com/npm 安装sortablejs npm install sortablejs --save相关options var sortable new Sortable(el, {group: "name", // or { name: "...", pull: [true, false, clone, …

论文笔记:Large Language Model for Participatory Urban Planning

202402 arxiv 大模型城市规划 引入了一个基于LLM的多代理协作框架&#xff0c;模拟规划师和数千名具有不同特征和背景的居民&#xff0c;用于参与式城市规划——>生成考虑居民多样化需求的城市区域土地利用规划为了提高讨论的效率&#xff0c;论文采用了鱼缸讨论机制&#…

【大模型应用极简开发入门(1)】LLM概述:LLM在AI中所处位置、NLP技术的演变、Transformer与GPT、以及GPT模型文本生成逻辑

文章目录 一. AI中大语言模型的位置与技术发展1. 从AI到Transformer2. NLP&#xff1a;自然语言处理3. LLM大型语言模型&#xff1a;NLP的一种特定技术3.1. LLM定义3.2. LLM的技术发展3.2.1. n-gram模型3.2.2. RNN与LSTM 二. Transformer在LLM中脱颖而出1. Transformer架构能力…

《强势》如何在工作、恋爱和人际交往中快速取得主导权? - 三余书屋 3ysw.net

强势&#xff1a;如何在工作、恋爱和人际交往中快速取得主导权&#xff1f; 大家好&#xff0c;今天我们要解读的是一本名为《强势》的书籍。我将花费大约20分钟的时间&#xff0c;为您详细讲解这本书的精华内容&#xff0c;包括如何在家庭关系、职场关系和朋友关系中迅速取得…

C++练级之路——类和对象(中二)

1、运算符重载 C为了增强代码的可读性引入了运算符重载&#xff0c;运算符重载是具有特殊函数名的函数&#xff0c;也是具有其返回值类型&#xff0c;函数名字以及参数列表&#xff0c;其返回值类型和参数列表与普通的函数类似。 函数名字为&#xff1a;关键字operator后面接需…

【C++初识继承】

博主首页&#xff1a; 有趣的中国人 专栏首页&#xff1a; C进阶 本篇文章主要讲解 继承 的相关内容 目录 1. 继承的概念和定义 1.1 继承的概念 1.2 继承的定义 1.2.1 继承定义格式 1.2.2 继承方式与访问修饰限定符 2. 基类和派生类对象赋值转换 3. 继承中的作用域 …

Geoserver的RESTful接口使用

概述 GeoServer提供了一个RESTful接口&#xff0c;客户端可以通过该接口获取有关实例的信息并进行配置更改。REST接口使用简单的HTTP调用&#xff0c;通过客户端就可以配置GeoServer&#xff0c;而无需使用Web管理接口。 Geoserver中的关系 工作区、数据源、图层、图层组以及…

漂亮的个人主页源码

源码介绍 漂亮的个人主页源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面&#xff0c;重定向这个界面 效果截图 源码下载 漂亮的个人主页源码