ESP32环境搭建+项目创建
一、环境搭建
1.下载并安装ESP_IDF开发框架
安装包下载网址
dl.espressif.cn/dl/esp-idf/
https://dl.espressif.cn/dl/esp-idf/
安装注意事项
1.Windows 专属 ESP-IDF 一键安装程序: 它会自动检测并安装缺失依赖,还自带独立工具链(不用提前安装Git和Python)
2.路径规划:规避中文 / 空格 / 特殊字符
2.添加环境变量

3.安装CH340串口驱动

4.查看ESP_IDF框架安装目录

5.安装viscode
1.网上下载最新版本viscode软件安装即可
2.安装插件




BSP-IDF 操作指令
cd (文件夹名) # 进入下一层 (文件名(输入文件夹前两个字符,按TAB补全))
cd .. # 返回上一层
cd ../../ # 返回两层
ls #列出当前目录下的文件 / 文件夹名称
idf.py build # 编译
idf.py fullclean # 清空旧构建缓存,比如编译错误后要清除后再重新编译
idf.py -p com4 flash # 程序烧入(com端口要看实际)
idf.py set-target esp32 # 重新指定目标芯片
idf.py 查看所有命令
二、新建项目工程
1.新建项目




2.修改bootloder
1.进入SDK配置

2.修改CPU频率

3.修改FLASH模式和大小及传输速率

4.修改PSRAM模式及传输速率

5.修改FreeRTOS系统时钟频率

6.修改分区表

三、ESP32芯片和ESP32模组
1. ESP32 芯片
这是整个系统的核心,由乐鑫设计的一个硅晶片。需要精密的天线设计和射频匹(设计不当性能会极差),还有外围电路的设计,组成芯片最小系统,才能正常使用。

芯片命名规则
芯片系列+内置FLASH+内置PSRAM:ESP32-S3 + FH4 + R2
ESP32-S3FH4R2


2. ESP32 模组
模组就是将最小系统所需元件集成在一块小型PCB上,并引出GPIO焊接的引脚(如邮票孔或焊盘),同时引出的 IO 可以满足各种应用需求。通过使用模组,开发者可以更容易地实现特定功能,缩短开发周期,提高开发效率(用户无需担心复杂的射频和外围电路设计)。

模组命名规则
ESP32-S3-WROOM-1-N16R8 模组


3.查型号

1.CPU工作最大频率
240 (最大240Mhz)
2.FLASH大小及传输模式
16, Quad (Flash 容量是 16MB,四线 SPI Flash)
Flash SPI mode可以选择QIO模式

3.PSRAM大小及传输模式
8, Octal(PSRAM 容量是 8MB, 八线 SPI PSRAM)
-
Quad SPI:四线 SPI PSRAM Octal SPI:八线 SPI PSRAM
四、分区
1.认识分区
将Flash划分为多个存储区域,记录每个区域的特定功能和用途


2.新建分区



五、添加组件
1.添加自定义组件
一个“组件”在物理上就是一个包含了有效的 CMakeLists.txt 文件的文件夹。
这个 CMakeLists.txt 文件必须通过调用 idf_component_register() 函数来向构建系统声明自己。
“组件”的判定标准:
-
必要条件:该文件夹下必须有一个
CMakeLists.txt文件。 -
关键动作:该
CMakeLists.txt文件内必须调用idf_component_register()。 -
组件名:组件名称默认就是该文件夹的名字。
组件结构
components/ # 任意重命名
└── BSP/ # 这将是一个名为 `BSP` 的组件
├── CMakeLists.txt # 此文件定义了 `BSP` 组件
└── LED/ # 这只是 `BSP` 组件内部的一个普通子目录
└── led.c # 这是 `BSP` 组件的源文件之一
CMakeLists.txt
# 第一步:用 set 定义变量(CMake通用指令,用于复用配置、简化维护)
# 变量名自定义,核心是“先存配置,再引用”
# 定义源码目录变量:指定组件的源码目录,框架会扫描目录下所有.c/.cpp文件编译
set(src_dirs
LED/led.c # 源码目录:组件目录下的LED/子目录(扫描该目录下所有led.c文件)
)
# 定义头文件目录变量:指定组件的头文件目录,编译器扫描该目录找.h文件
set(include_dirs
LED # 头文件目录:组件目录下的LED/子目录(扫描该目录下所有.h文件)
)
# 定义依赖组件变量:声明组件依赖的ESP-IDF内置组件
set(requires
driver # 依赖内置driver组件(LED功能需调用GPIO外设驱动接口)
)
# 第二步:引用变量,注册组件(ESP-IDF专属指令,框架唯一识别的组件注册方式)
idf_component_register(
SRCS ${src_dirs} # 引用源码目录变量(等价于直接写"LED/led.c")
INCLUDE_DIRS ${include_dirs} # 引用头文件目录变量(等价于直接写"LED下所有.h文件")
REQUIRES ${requires} # 引用依赖组件变量(等价于直接写"driver")
)

2.添加乐鑫官方组件





更多推荐

所有评论(0)