【AI小智硬件程序(一)】
文件 / 文件夹类型核心作用注意事项.vscode/隐藏文件夹存放 VS Code 相关配置配置文件智能感知配置(Ctrl+Shift+P 生成):指定 ESP-IDF 头文件 / 编译器路径,解决头文件爆红自动生成,无需手动修改配置文件调试配置文件新手暂无需关心配置文件工程工作区配置:记录串口、芯片型号、烧录方式等可视化配置项自动生成,对应 VS Code ESP-IDF 插件的界面配置buil
AI小智硬件程序(一)
ESP32开发环境安装
一、安装 ESP-IDF 离线安装包
详细过程见链接: B站Up
1.下载安装包
链接: https://pan.baidu.com/s/1Lqzo0xA3T1v_nkD-RhTQ提取码: w5vp(用 5.3.2 版本)
https://dl.espressif.com/dl/esp-idf
渠道:网盘或 ESP 官方网站下载 ESP-IDF 离线安装包(离线包约 1+GB,无需联网拉取依赖;在线包较小但安装时需联网)。
2.执行安装
双击离线安装包,等待弹窗后点击「确定」→ 同意协议 → 下一步。
安装路径建议选择D 盘(方便后续统一管理和问题排查),继续下一步直至点击「安装」。
等待安装完成(进度条跑完),点击「完成」,关闭弹出的无关窗口。
3.验证安装
双击 ESP-IDF 相关验证程序(视频中未明确具体程序,可跳过,后续 VS Code 配置时验证)。
二、安装 VS Code
1.执行安装
双击 VS Code 安装包,同意协议 → 下一步。
安装路径同样选择D 盘(若提示 “已存在”,直接确认覆盖 / 保留即可)。
勾选所有安装选项 → 下一步 → 点击「安装」,等待完成。
三、安装 VS Code 插件
1.安装 ESP-IDF 插件
打开 VS Code,点击左侧「扩展」图标(方块形状)。
在搜索框输入「ESP-IDF」,安装第一个官方插件(乐鑫出品,安装后会出现 ESP 图标)。
若弹出 “信任插件” 提示,直接确认信任。
2.初始化 ESP-IDF 插件
点击 VS Code 左侧出现的 ESP-IDF 图标,等待插件初始化。
若未弹出配置界面,重启 VS Code(可能需要多次重启)。
弹出配置界面后,选择「使用现有的 ESP-IDF」。
自动搜索 ESP-IDF 安装路径(D 盘),若未搜到则手动选择 D 盘下的 ESP-IDF 安装目录。
点击「install」安装配套工具。


3.处理插件安装报错
若安装时报错,找到 ESP-IDF 安装目录下的 tools 文件夹(或 false 子文件夹),删除该文件夹后重新点击「install」。
等待工具下载安装完成(多个进度条,需全部跑完)。
4.安装其他必备插件
搜索「C/C++」插件并安装(ESP32 开发核心插件)。
搜索「Chinese」插件(中文语言包),安装后重启 VS Code,界面自动切换为中文。
安装「统一零码」插件(视频中提及,按提示扫码登录即可)。
四、环境验证
所有插件安装、配置完成后,VS Code 能正常识别 ESP-IDF 路径,且 ESP-IDF 插件无报错,即代表 ESP32 开发环境搭建完成。
创建ESP32G工程代码
详细过程见链接: B站Up
一、开发板硬件说明(快速了解)
核心模块:ESP32-S3
关键接口:Type-C(开发 / 烧录用)、喇叭接口、TF 卡槽(录音存储)、4G 模块接口(暂不用)、复位 / BOOT 按键、2.0 寸触摸屏
烧录方式:Type-C 串口烧录(默认用串口 0,OTG 也可模拟串口,优先选 Type-C)
二、创建 ESP32 工程(命令行方式)
1.打开 ESP-IDF 终端
桌面 / 开始菜单搜索「ESP」,打开 ESP-IDF 专属终端(已配置好环境变量)。
2.切换到工程目录
若终端默认在 C 盘,先输入 D: 切换到 D 盘(安装 ESP-IDF 的盘符);
输入 cd 你的工程目录路径(如 cd D:\ESP32_Projects),进入想要存放工程的文件夹。
3.创建工程指令
输入以下指令(注意:- 是中杠,不是下斜杠):
bash
运行
idf.py create-project ai-esp32s3
idf.py:ESP-IDF 核心命令工具;
create-project:创建工程的子命令;
ai-esp32s3:自定义工程名称(可修改)。
4.验证工程创建
终端执行完后,目标目录会生成 AI-ESP32S3 文件夹,内含 main 目录和 CMakeLists.txt(工程构建配置文件)。
三、VS Code 打开并配置工程
1.打开工程
找到创建好的 AI-ESP32S3 文件夹,右键选择「通过 Code 打开」(若没有该选项,需重新安装 VS Code 并勾选「添加到右键菜单」)。
2.信任工程
打开后 VS Code 会提示「是否信任此文件夹」,点击「是」,否则无法正常编辑。
3.解决头文件爆红问题
快捷键 Ctrl+Shift+P,输入「C/C++: 添加配置文件到文件夹」,选择「C/C++ Configurations (JSON)」;
生成 .vscode/c_cpp_properties.json 文件,该文件会自动配置 ESP-IDF 组件的路径(如 D:\esp-idf\components),解决头文件找不到的爆红问题(爆红不影响编译,但影响开发体验)。

4.配置芯片型号和串口
点击 VS Code 左侧 ESP-IDF 插件图标,找到「芯片型号」选项,选择 esp32s3(必须匹配硬件,否则编译 / 烧录失败);
连接开发板 Type-C 到电脑,插件会识别串口(如 COM14,每个人编号不同),选择该串口;
烧录方式选择「串口烧录」(默认UART)。
四、编译、烧录与监视
1.核心操作按钮(VS Code ESP-IDF 插件)
Clean:清除之前的编译产物(第一次编译可先执行);
Build:仅编译工程(第一次编译较慢,全量编译;后续修改代码为增量编译);
Flash:仅烧录编译后的固件到开发板;
Build, Flash and Monitor(一键三连):编译 → 烧录 → 打开串口监视(最常用)。
2.测试:添加打印语句
点击「Build, Flash and Monitor」,终端会依次执行编译、烧录,最后打开串口监视窗口;成功后会看到串口输出 Hello World! AI-ESP32S3,证明工程配置和烧录正常。
五、核心概念(新手重点)
1.程序入口
app_main() 是用户程序的入口(类似 C 语言的 main()),ESP-IDF 基于 FreeRTOS,系统启动后会创建「main 任务」运行该函数,运行在 CPU0 核心(ESP32-S3 是双核)。
2.工程结构
main 目录:固定名称,存放用户代码(修改文件名需同步改 CMakeLists.txt,新手暂不改);
CMakeLists.txt:工程构建配置文件,ESP-IDF 用 CMake 管理编译流程;
components 目录(ESP-IDF 安装路径下):乐鑫官方提供的组件库(如串口、WiFi、FreeRTOS 等),头文件爆红就是因为 VS Code 没识别到该路径。
3.编译特性
ESP-IDF 默认支持 C 语言,也支持 C/C++ 混合编译;
第一次编译慢(全量编译),后续仅编译修改的文件(增量编译)。
ESP32点亮第一颗LED灯
一.LED原理图

开发板上的 LED 是接在 IO10 上,并且低电平点亮,高电平熄灭
二.编写代码
// 引入标准输入输出库,用于打印调试信息
#include <stdio.h>
// FreeRTOS核心头文件,ESP32-IDF基于FreeRTOS操作系统
#include "freertos/FreeRTOS.h"
// FreeRTOS任务相关头文件,用于延时函数vTaskDelay
#include "freertos/task.h"
// GPIO外设驱动头文件,用于配置和控制GPIO引脚
#include "driver/gpio.h"
// app_main是ESP32-IDF的用户程序入口函数(类似C语言的main函数)
void app_main(void)
{
// 打印调试信息,确认程序启动
printf("Hello World!\n");
// 定义GPIO配置结构体,用于配置IO10引脚的属性
gpio_config_t io_conf;
// 禁用GPIO中断功能(本次仅做输出,不需要中断)
io_conf.intr_type = GPIO_INTR_DISABLE;
// 设置GPIO模式为输出模式
io_conf.mode = GPIO_MODE_OUTPUT;
// 配置要操作的GPIO引脚:GPIO_NUM_10(开发板LED对应的引脚)
// 1ULL<<GPIO_NUM_10 是将第10位设为1,指定配置IO10引脚
io_conf.pin_bit_mask = (1ULL<<GPIO_NUM_10);
// 禁用下拉电阻
io_conf.pull_down_en = GPIO_PULLDOWN_DISABLE;
// 禁用上拉电阻
io_conf.pull_up_en = GPIO_PULLUP_DISABLE;
// 应用上述GPIO配置到硬件
gpio_config(&io_conf);
// 无限循环,实现LED持续闪烁
while (1)
{
// 设置IO10引脚为低电平(开发板LED低电平点亮)
gpio_set_level(GPIO_NUM_10, 0);
// 延时500毫秒(portTICK_PERIOD_MS是系统时钟节拍,确保延时准确)
vTaskDelay(500 / portTICK_PERIOD_MS);
// 设置IO10引脚为高电平(开发板LED高电平熄灭)
gpio_set_level(GPIO_NUM_10, 1);
// 延时500毫秒
vTaskDelay(500 / portTICK_PERIOD_MS);
}
}
工程结构介绍

一、工程目录文件分类及作用(按重要性排序)
| 文件 / 文件夹 | 类型 | 核心作用 | 注意事项 |
|---|---|---|---|
| .vscode/ | 隐藏文件夹 | 存放 VS Code 相关配置 | - |
| ├─ c_cpp_properties.json | 配置文件 | 智能感知配置(Ctrl+Shift+P 生成):指定 ESP-IDF 头文件 / 编译器路径,解决头文件爆红 | 自动生成,无需手动修改 |
| ├─ launch.json | 配置文件 | 调试配置文件 | 新手暂无需关心 |
| ├─ settings.json | 配置文件 | 工程工作区配置:记录串口、芯片型号、烧录方式等可视化配置项 | 自动生成,对应 VS Code ESP-IDF 插件的界面配置 |
| build/ | 文件夹 | 编译产物目录 | 包含 bin 固件、分区表 bin、bootloader、编译中间文件等;新手无需手动修改,烧录时插件自动读取 |
| main/ | 核心文件夹 | 用户代码目录(ESP-IDF 默认组件) | 文件夹名称不可修改(修改后 CMake 找不到组件);内部文件名称可改 |
| ├─ main.c | 源文件 | 用户代码入口文件 | 文件名称可改(如改名为 led.c),但需同步修改 main/CMakeLists.txt |
| ├─ CMakeLists.txt | 构建文件 | main 组件的 CMake 配置文件 | 名称不可改,用于注册当前组件的源文件 |
| CMakeLists.txt | 顶层文件 | 工程全局 CMake 配置文件 | 指定 CMake 最低版本、工程名称、依赖组件等;名称不可改 |
| sdkconfig | 核心配置文件 | 工程全局配置文件(menuconfig 生成):记录所有硬件 / 软件配置项 | 手动修改易出错,优先通过idf.py menuconfig配置;修改后会生成sdkconfig.old备份 |
| Kconfig | 配置文件 | 菜单配置源文件(组件级) | 每个组件(如 components/i2c/)下的 Kconfig 定义 menuconfig 的菜单项;新手无需手动改 |
二、核心配置逻辑详解
1. 智能感知配置(c_cpp_properties.json)
生成方式:VS Code 中按Ctrl+Shift+P → 选择「C/C++: 添加配置文件到文件夹」;
核心作用:告诉 VS Code「ESP-IDF 的头文件在哪、编译器在哪」,实现代码提示、跳转到定义等智能感知,解决头文件爆红问题;
特性:自动生成,无需手动修改,适配 ESP-IDF 的安装路径。
2. menuconfig 配置体系(最核心)
触发方式:
终端:idf.py menuconfig(字符界面菜单);
VS Code:ESP-IDF 插件提供可视化配置界面(底层仍调用 menuconfig);
3. CMake 构建体系
工程构建流程:
1.顶层CMakeLists.txt指定工程基础信息(CMake 版本、工程名);
2.遍历所有组件(如 main、components 下的官方组件)的CMakeLists.txt;
3.编译所有注册的源文件,生成 bin 固件、bootloader、分区表等,输出到build/目录。
关键注意点:
main文件夹名称固定,因为顶层 CMake 默认查找名为main的组件;
若修改main下的源文件名(如把 main.c 改为 app.c),需在main/CMakeLists.txt中修改idf_component_register(SRCS “app.c” …)。
4. 代码开发说明
ESP-IDF 默认支持 C 语言开发,也完全支持 C/C++ 混合编译;
用户代码入口固定为app_main()函数(FreeRTOS 的 main 任务会调用该函数),函数名不可修改。
更多推荐




所有评论(0)