0


【ESP-IDF篇】搭建ESP-IDF软件开发环境,包括手动命令行和VSCode两种方式

忘记过去,超越自己

  • ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️
  • ❤️ 本篇创建记录 2023-09-27 ❤️
  • ❤️ 本篇更新记录 2023-09-27 ❤️
  • 🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言📝
  • 🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请留言轰炸哦!及时修正!感谢支持!
  • 🔥 Arduino ESP8266教程累计帮助过超过1W+同学入门学习硬件网络编程,入选过选修课程,刊登过无线电杂志 🔥零基础从入门到熟悉Arduino平台下开发ESP8266,同时会涉及网络编程知识。专栏文章累计超过60篇,分为基础篇、网络篇、应用篇、高级篇,涵盖ESP8266大部分开发技巧。

快速导航
单片机菜鸟的博客快速索引(快速找到你要的)

如果觉得有用,麻烦点赞收藏,您的支持是博主创作的动力。

文章目录

1. 前言

ESP-IDF 是乐鑫主推的ESP32的开发框架,旨在协助用户快速开发物联网 (IoT) 应用,可满足用户对 Wi-Fi、蓝牙、低功耗等方面的要求。

Espressif IoT Development Framework
https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/get-started/index.html

如需在 ESP32 上使用 ESP-IDF,请安装以下软件:

  • 设置 工具链,用于编译 ESP32 代码;
  • 编译构建工具 —— CMake 和 Ninja 编译构建工具,用于编译 ESP32 应用程序;
  • 获取 ESP-IDF 软件开发框架。该框架已经基本包含 ESP32 使用的 API(软件库和源代码)和运行 工具链 的脚本;在这里插入图片描述 软件开发的搭建有三种选择:
  • 手动安装工具链,命令行方式(尝试,本篇介绍)
  • 使用Eclipse插件,IDE方式(自行尝试)
  • 使用VSCode插件,IDE方式(推荐,本篇介绍)

2. 手动安装工具链,命令行方式(windows)

2.1 下载离线安装器

进入乐鑫 ESP-IDF Windows Installer Download 下载页面,选择离线版本工具(网络原因,安装过程中使用github下载会出问题)。
在这里插入图片描述
默默等待下载一下。
在这里插入图片描述

2.2 使用安装器进行安装

下载完成之后双击,选择简体中文,准备开始安装。

  • 同意协议,下一步在这里插入图片描述
  • 等待安装前系统检查在这里插入图片描述
  • 选择目标位置,这里我直接默认了,也可以修改为其他路径在这里插入图片描述
  • 选择组件,默认或者全选即可在这里插入图片描述
  • 准备安装前的确认在这里插入图片描述 这里版本是 5.1.1 idf版本。
  • 接下来,静静等待一小会在这里插入图片描述
  • 安装完成在这里插入图片描述 点击完成就会有两个弹窗。在这里插入图片描述在这里插入图片描述 同时,电脑桌面会多两个快捷方式。在这里插入图片描述

2.3 认识一下目录文件

在这里插入图片描述
frameworks包含了esp-idf版本,tools下面包含了各种编译工具,还有一个py环境工具。

在这里插入图片描述
这里我们会比较关注examples和components目录,也是重点学习的地方。

  • components,看起来就是库在这里插入图片描述
  • example,案例参考代码在这里插入图片描述

2.4 helloworld工程示例

既然我们这里用到命令行工具来编译,我们先了解一下。
在这里插入图片描述
比较重要就是设置了Bin目录,也就是我们常说的工具。

2.4.1 进入到工程目录

在安装目录

C:\Espressif\

中打开以下文件夹

C:\Espressif\frameworks\esp-idf-v5.1.1\examples\get-started

在这里插入图片描述

2.4.2 配置目标芯片

因为我这里是烧录到NodeMcu ESP32,输入命令:

idf.py set-target esp32
在这里插入图片描述

2.4.3 编译工程

输入命令:

idf.py build
运行命令可以编译应用程序和所有 ESP-IDF 组件,接着生成 bootloader、分区表和应用程序二进制文件:
等待一小会,先喝个水!!!
在这里插入图片描述
编译完成后会在项目文件夹下生成一个

build

文件夹,所有的bin文件和BootLoader也会在该目录下
在这里插入图片描述

2.4.4 烧录固件

插上硬件,看看是哪个COM口。
使用命令,将刚刚生成的二进制文件 (bootloader.bin, partition-table.bin 和 hello-world.bin) 烧录到开发板:

idf.py -p PORT [-b BAUD] flash

  • PORT是端口号,可以在【设备管理器】中看到,这里是COM3;
  • BAUD是波特率,默认波特率为 460800;

烧录命令为:

idf.py -p COM3 flash
在这里插入图片描述

2.4.5 查看串口信息

idf.py -p PORT monitor

  • PORT是端口号,可以在【设备管理器】中看到,这里是COM3;

所以,输入命令:

idf.py -p COM3 monitor
在这里插入图片描述
顺便也看看hello_world的代码是啥?

/*
 * SPDX-FileCopyrightText: 2010-2022 Espressif Systems (Shanghai) CO LTD
 *
 * SPDX-License-Identifier: CC0-1.0
 */#include<stdio.h>#include<inttypes.h>#include"sdkconfig.h"#include"freertos/FreeRTOS.h"#include"freertos/task.h"#include"esp_chip_info.h"#include"esp_flash.h"voidapp_main(void){printf("Hello world!\n");/* Print chip information */esp_chip_info_t chip_info;uint32_t flash_size;esp_chip_info(&chip_info);printf("This is %s chip with %d CPU core(s), %s%s%s%s, ",
           CONFIG_IDF_TARGET,
           chip_info.cores,(chip_info.features & CHIP_FEATURE_WIFI_BGN)?"WiFi/":"",(chip_info.features & CHIP_FEATURE_BT)?"BT":"",(chip_info.features & CHIP_FEATURE_BLE)?"BLE":"",(chip_info.features & CHIP_FEATURE_IEEE802154)?", 802.15.4 (Zigbee/Thread)":"");unsigned major_rev = chip_info.revision /100;unsigned minor_rev = chip_info.revision %100;printf("silicon revision v%d.%d, ", major_rev, minor_rev);if(esp_flash_get_size(NULL,&flash_size)!= ESP_OK){printf("Get flash size failed");return;}printf("%" PRIu32 "MB %s flash\n", flash_size /(uint32_t)(1024*1024),(chip_info.features & CHIP_FEATURE_EMB_FLASH)?"embedded":"external");printf("Minimum free heap size: %" PRIu32 " bytes\n",esp_get_minimum_free_heap_size());for(int i =10; i >=0; i--){printf("Restarting in %d seconds...\n", i);vTaskDelay(1000/ portTICK_PERIOD_MS);}printf("Restarting now.\n");fflush(stdout);esp_restart();}

通过对比日志,说明正常运行起来!完美!
如果想停止串口监控,直接键盘

ctrl + ]

即可。

3. 使用VSCode插件,IDE方式

上面方式是通过命令行配置,但是大多数人更喜欢vscode这种图形化IDE开发。那么,也来配置一下。

3.1 安装IDF扩展

在这里插入图片描述

3.2 打开ESP-IDF扩展设置

按下

CTRL+shift+P

打开设置搜索,输入

esp-idf configure esp-idf extension

在这里插入图片描述

3.3 开始安装工具链

为了和命令行区分,这里单独用了独立目录。
在这里插入图片描述
默默等待安装!!!先安装idf框架再安装idf工具。。。。
在这里插入图片描述
直到成功!
在这里插入图片描述
顺便也看看安装目录!
在这里插入图片描述
在这里插入图片描述
整体上和刚刚通过手动安装方式大同小异。

3.4 helloworld工程示例

3.4.1 找到工程,用vscode打开

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

3.4.2 编译工程

每个项目第一次编译时间会比较长,因为会把所有的源文件进行编译,后面在编译的话就算是

差量化编译

了,相比之下编译速度非常快。
在这里插入图片描述
ps:记得选择一下目标板子。

3.4.3 烧录固件

在这里插入图片描述

3.4.4 查看串口信息

在这里插入图片描述
完美!

3.4.5 解决头文件include无法识别问题

在这里插入图片描述
虽然编译烧录下载都没有问题,但是作为一个强迫症,这个问题要解决。

解决方法:

  • 按下CTRL+shift+P打开设置搜索,输入>esp-idf add vsc打开ESP-IDF扩展设置。点击之后就会发现在项目根目录下创建一个.vscode文件夹,该命令会将所有的头文件路径都包含在该c_cpp_properties.json配置文件中在这里插入图片描述
{"configurations":[{"name":"ESP-IDF","compilerPath":"e:\\esp-idf-tools\\tools\\xtensa-esp32-elf\\esp-12.2.0_20230208\\xtensa-esp32-elf\\bin\\xtensa-esp32-elf-gcc.exe","includePath":["${config:idf.espIdfPath}/components/**","${config:idf.espIdfPathWin}/components/**","${config:idf.espAdfPath}/components/**","${config:idf.espAdfPathWin}/components/**","${workspaceFolder}/**"],"browse":{"path":["${config:idf.espIdfPath}/components","${config:idf.espIdfPathWin}/components","${config:idf.espAdfPath}/components/**","${config:idf.espAdfPathWin}/components/**","${workspaceFolder}"],"limitSymbolsToIncludedHeaders": false
            }}],"version":4}

这下子就真的完美了!

3.5 新建项目

接下来试试我们自己创建一个新项目是否可行?

  • 按下CTRL+shift+P打开设置搜索,输入>esp-idf new project打开ESP-IDF扩展设置在这里插入图片描述
  • 给项目命名,选择目录及开发板类型、端口在这里插入图片描述
  • 选择一个模板创建项目在这里插入图片描述
  • 打开创建好的项目在这里插入图片描述
  • 我们稍微修改一下打印内容
/*
 * SPDX-FileCopyrightText: 2010-2022 Espressif Systems (Shanghai) CO LTD
 *
 * SPDX-License-Identifier: CC0-1.0
 */#include<stdio.h>#include<inttypes.h>#include"sdkconfig.h"#include"freertos/FreeRTOS.h"#include"freertos/task.h"#include"esp_chip_info.h"#include"esp_flash.h"voidapp_main(void){printf("Hello world!\n");/* Print chip information */esp_chip_info_t chip_info;uint32_t flash_size;esp_chip_info(&chip_info);printf("Hello world! This is My First idf code! This is %s chip with %d CPU core(s), %s%s%s%s, ",
           CONFIG_IDF_TARGET,
           chip_info.cores,(chip_info.features & CHIP_FEATURE_WIFI_BGN)?"WiFi/":"",(chip_info.features & CHIP_FEATURE_BT)?"BT":"",(chip_info.features & CHIP_FEATURE_BLE)?"BLE":"",(chip_info.features & CHIP_FEATURE_IEEE802154)?", 802.15.4 (Zigbee/Thread)":"");unsigned major_rev = chip_info.revision /100;unsigned minor_rev = chip_info.revision %100;printf("silicon revision v%d.%d, ", major_rev, minor_rev);if(esp_flash_get_size(NULL,&flash_size)!= ESP_OK){printf("Get flash size failed");return;}printf("%" PRIu32 "MB %s flash\n", flash_size /(uint32_t)(1024*1024),(chip_info.features & CHIP_FEATURE_EMB_FLASH)?"embedded":"external");printf("Minimum free heap size: %" PRIu32 " bytes\n",esp_get_minimum_free_heap_size());for(int i =10; i >=0; i--){printf("Restarting in %d seconds...\n", i);vTaskDelay(1000/ portTICK_PERIOD_MS);}printf("Restarting now.\n");fflush(stdout);esp_restart();}
  • 按照3.4进行编译烧录查看串口信息!在这里插入图片描述 完美!这个也生效了! 到此,整个搭建过程就结束了!希望大家都能10分钟搭建完毕!
标签: vscode ide esp-idf

本文转载自: https://blog.csdn.net/dpjcn1990/article/details/133349474
版权归原作者 单片机菜鸟哥 所有, 如有侵权,请联系我们删除。

“【ESP-IDF篇】搭建ESP-IDF软件开发环境,包括手动命令行和VSCode两种方式”的评论:

还没有评论