esp32开发笔记-工程搭建

目录

1.开发环境搭建

[1.1 下载安装 ESP-IDF的软件开发包SDK](#1.1 下载安装 ESP-IDF的软件开发包SDK)

1.2增加环境变量

[1.3 SDK示例](#1.3 SDK示例)

1.4.esp32前端工具的使用命令

1.5下载安装vscode和ESP-IDF插件

2.工程创建

[2.1 VSCODE创建工程](#2.1 VSCODE创建工程)

[2.2 项目配置](#2.2 项目配置)

[2.2.1 cpu频率](#2.2.1 cpu频率)

[2.2.2 flash](#2.2.2 flash)

[2.2.3 psram](#2.2.3 psram)

[2.2.4 freertos](#2.2.4 freertos)

[2.2.5 partition](#2.2.5 partition)

[2.2.6 向项目里添加文件(组件)操作(建议使用vscode插件创建)](#2.2.6 向项目里添加文件(组件)操作(建议使用vscode插件创建))

[2.2.7 添加官方组件](#2.2.7 添加官方组件)

[2.2.8 删除项目里面的组件](#2.2.8 删除项目里面的组件)

[1. 直接删除组件文件夹](#1. 直接删除组件文件夹)

[2. 删除代码里的引用](#2. 删除代码里的引用)

[3. 清理编译缓存(必须做!)](#3. 清理编译缓存(必须做!))

[4. 重新编译](#4. 重新编译)

3.拓展功能

[3.1 加快项目编译速度](#3.1 加快项目编译速度)

[3.2 下载程序说明](#3.2 下载程序说明)

[3.3 ESP-IDF软件开发包说明](#3.3 ESP-IDF软件开发包说明)


1.开发环境搭建

前提条件:安装了git和python10-python13之间的版本。

1.1 下载安装 ESP-IDF的软件开发包SDK

离线安装包:

https://dl.espressif.cn/dl/esp-idf/https://dl.espressif.cn/dl/esp-idf/

安装时需要注意:应用修复

安装需要不少时间。

1.2增加环境变量

1.3 SDK示例

安装完成之后,在相应的安装目录会有从github仓库克隆的程序示例,就跟常规的单片机的sdk一样,有外设例程,如图所示:

以上的example文件夹里面的例子,可以在配置vscode后,复制需要的例程到其他空目录(注意目录必须是英文),直接用vscode打开编译即可。

1.4.esp32前端工具的使用命令

安装前端工具以后可以使用图示命令,使用示例

bash 复制代码
#打开powershell,进入一个英文目录(必须是英文路径不然可能出错)
idf.py create-project test
cd test
idf.py set-target esp32s3    #设定目标芯片
idf.py build    #编译代码
idf.py clean   #清除编译结果

1.5下载安装vscode和ESP-IDF插件

https://code.visualstudio.com/https://code.visualstudio.com/在vscode安装插件 esp-idf

1.6 配置ESP-IDF插件

用vscode打开一个空文件夹,就会出现配置项目

配置完成后,在vscode最下面集成了IDF工具:

从左到右列表分别是:

  • SDK版本
  • 选择flash烧录方法
  • 选择com口
  • 选择目标芯片(类似于:idf.py set-target esp32s3)
  • SDK配置编辑器(配置flash,时钟频率等,idf.py menuconfig)
  • 清除编译目标(类似于:idf.py fullclean)
  • 编译项目
  • 下载到flash
  • idf.py monitor(打开串口日志工具,它会触发一次重启 (自动复位),不想重启用:idf.py monitor --no-reset 退出按:Ctrl + ]
  • 调试项目
  • 编译和打开串口日志工具

2.工程创建

2.1 VSCODE创建工程

用vscode打开一个空文件夹,就会出现配置项目,配置后可以直接在vscode创建新工程。

或者执行 ctrl+shift+p 搜索 new project,也可以创建新项目。

注意:需要等一会才能创建好新工程,vscode右下角有进度条可以展示进度。

建议复制工程文件夹: D:\Espressif\frameworks\esp-idf-v5.5.4\tools\templates\sample_project 到

D:\Espressif\frameworks\esp-idf-v5.5.4\examples\get-started 目录里面,这样就可以在新建工程时方便选择 get-started 以 sample_project (也可以不复制,在ESP-IDF Templates 里面也有这个工程)这个工程为基础。如果需要使用蓝牙或者wifi什么的也可以相应的工程模版。

2.2 项目配置

2.2.1 cpu频率

2.2.2 flash

2.2.3 psram

2.2.4 freertos

2.2.5 partition

先设置分区为16MB

设置详细分区表

实际这个就是个csv文件,只不过他以ui的形式表现出来,以后新建工程直接打开这个csv复制这段内容即可。

XML 复制代码
# ESP-IDF Partition Table
# Name, Type, SubType, Offset, Size, Flags
nvs,data,nvs,0x9000,0x6000,
phy_init,data,phy,0xf000,0x1000,
factory,app,factory,0x10000,0x1f0000,
vfs,data,fat,0x200000,0xa00000,
storage,data,spiffs,0xc00000,0x400000,

注意:只能有一个factory的app扇区(启动地址可以随便定),如果要ota升级需要用到两个扇区必须这么写:

|---------|------|-------|----------|----------|
| 名称 | 类型 | 子类型 | 地址 | 大小 |
| nvs | data | nvs | 0x9000 | 0x4000 |
| otadata | data | ota | 0xd000 | 0x2000 |
| ota_0 | app | ota_0 | 0x10000 | 0x180000 |
| ota_1 | app | ota_1 | 0x190000 | 0x180000 |

ota_0和ota_1大小必须相等,otadata 必须有且为 0x2000 字节。

2.2.6 向项目里添加文件(组件)操作(建议使用vscode插件创建)

举例增加disp组件(增加disp.h和disp.c)使用命令:

bash 复制代码
mkdir components#可能不需要这个,在创建组件的时候会自动创建,如果没有自动创建则需要创建,并把组件目录整体移动到这个文件夹
idf.py create-component disp

注意:ESP-IDF 不认识根目录的组件,只认 components 文件夹里的!

这样会自动在项目里面添加组件目录,可以直接在main.c文件中调用:

也可以使用vscode插件创建:

注意:编译前需要先执行 idf.py fullclean 命令。

2.2.7 添加官方组件

在vscode 快捷键(ctrl+shift+P)搜索:ESP-IDF Show ESP component Registry

点击第一个展示组件:

例如:添加 esp-modbus组件

点击这个组件,进入后右上角点击安装 install

添加成功后,项目文件夹会有一下文件:

ESP32的组件地址:

https://components.espressif.com/https://components.espressif.com/ ESP32的官方组件地址在这里,可以打开进去浏览,一般组件页面里面都有该组件的使用说明,但是是英文的,可以利用浏览器的翻译方便查看,如图所示:

2.2.8 删除项目里面的组件

删除组件 标准步骤

1. 直接删除组件文件夹

比如你要删 LED 组件:

bash 复制代码
项目/components/LED/   → 直接整个文件夹删掉
2. 删除代码里的引用

所有用到它的地方都删掉:

bash 复制代码
// 删掉
#include "LED.h"

// 删掉调用
func();
led_init();
3. 清理编译缓存(必须做!)
bash 复制代码
idf.py fullclean
4. 重新编译
bash 复制代码
idf.py build

3.拓展功能

3.1 加快项目编译速度

在执行编译前打开多线程编译:

bash 复制代码
# 临时生效(当前终端)
$env:CMAKE_BUILD_PARALLEL_LEVEL = 12

# 永久生效(以后所有终端都自动用12线程)
#[Environment]::SetEnvironmentVariable("CMAKE_BUILD_PARALLEL_LEVEL", "12", "User")

idf.py build

3.2 下载程序说明

执行下载到底下载了那些文件:

  • bootloader.bin boot文件
  • partition-table.bin 分区表文件
  • sample_project.bin 项目文件

3.3 ESP-IDF软件开发包说明

  • ESP-IDF = FreeRTOS + 硬件驱动 + 网络协议栈 + 工具链
  • 你写的 app_main() 本质上就是 FreeRTOS 的一个任务
  • 系统底层:WiFi、蓝牙、以太网、日志、USB 等,全都是跑在 FreeRTOS 任务里的
  • 你写的所有代码,默认都运行在 FreeRTOS 调度下
相关推荐
ljt27249606612 小时前
Compose笔记(七十七)--视频录制
笔记·android jetpack
ACP广源盛139246256732 小时前
破局 Type‑C 切换器痛点@ACP#GSV6155+LH3828/GSV2221+LH3828 黄金方案
c语言·开发语言·网络·人工智能·嵌入式硬件·计算机外设·电脑
时空自由民.3 小时前
ST7701S 3.5寸显示屏
单片机
金戈鐡馬4 小时前
BetaFlight中的定时器引脚绑定详解
stm32·单片机·嵌入式硬件·无人机
周周不一样4 小时前
Andorid基础笔记2-jar&反射
笔记·pycharm·jar
智者知已应修善业4 小时前
【51单片机单按键切换广告屏】2023-5-17
c++·经验分享·笔记·算法·51单片机
广州灵眸科技有限公司4 小时前
为RK3588注入澎湃算力:RK1820 AI加速卡完整适配与评测指南
linux·网络·人工智能·物联网·算法
Wave8455 小时前
FreeRTOS软件定时器详解
stm32·单片机·freertos
VBsemi-专注于MOSFET研发定制5 小时前
奶茶制作机器人功率MOSFET选型方案——高效、精准与可靠驱动系统设计指南
单片机·嵌入式硬件