03 - 开发环境
ESP32开发环境配置与使用
ESP-IDF 安装
Windows 安装
方法一:手动安装
# 1. 安装 Python 3.8+
python --version
# 2. 克隆 ESP-IDF
git clone -b v5.1.2 --recursive https://github.com/espressif/esp-idf.git
cd esp-idf
# 3. 运行安装脚本
.\install.ps1 esp32
# 4. 激活环境
.\export.ps1方法二:ESP-IDF Tools Installer
- 下载 ESP-IDF Tools Installer
- 选择安装路径和 ESP-IDF 版本
- 完成安装,自动配置环境
Linux/macOS 安装
# 1. 安装依赖
# Ubuntu/Debian
sudo apt-get install git wget flex bison gperf python3 python3-pip python3-venv \
cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
# macOS
brew install cmake ninja dfu-util
# 2. 克隆 ESP-IDF
git clone -b v5.1.2 --recursive https://github.com/espressif/esp-idf.git
cd esp-idf
# 3. 安装
./install.sh esp32
# 4. 激活
source export.shESP-IDF 项目结构
my_esp32_project/
├── CMakeLists.txt # CMake配置
├── main/
│ ├── CMakeLists.txt
│ └── main.c # 主程序
├── components/ # 组件目录
├── build/ # 编译输出
└── sdkconfig # 项目配置
关键文件说明
CMakeLists.txt (顶层)
cmake_minimum_required(VERSION 3.16)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(my_esp32_project)main/CMakeLists.txt
idf_build_get_property(target IDF_TARGET)
if(${target} STREQUAL "esp32s3")
set(CMAKE_CXX_STANDARD 17)
else()
set(CMAKE_CXX_STANDARD 11)
endif()
idf_component_register(
SRCS "main.c"
INCLUDE_DIRS "."
)常用命令
idf.py 命令
# 创建项目
idf.py create-project my_project
# 配置项目
idf.py menuconfig
# 编译
idf.py build
# 烧录
idf.py -p /dev/ttyUSB0 flash
# 监视输出
idf.py monitor
# 一步到位(编译+烧录+监视)
idf.py -p /dev/ttyUSB0 flash monitor
# 清理构建
idf.py fullcleanesptool.py 直接使用
# 读取Flash
esptool.py -p /dev/ttyUSB0 read_flash 0x0 0x400000 firmware.bin
# 烧录固件
esptool.py -p /dev/ttyUSB0 write_flash 0x0 firmware.bin
# 擦除Flash
esptool.py -p /dev/ttyUSB0 erase_flashmenuconfig 配置
常用配置项
CONFIG_ESPTOOLPY_FLASHSIZE
├── 4MB
├── 8MB
├── 16MB (ESP32-S3)
└── 32MB
CONFIG_ESPTOOLPY_BAUDRATE
├── 921600 (默认,快速)
├── 115200 (稳定)
└── 460800 (平衡)
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ
├── 240 (性能优先)
├── 160 (均衡)
└── 80 (节能)
WiFi 功耗相关
CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=n
CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=16
CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=16
Arduino 环境配置
安装 ESP32 Core
// Arduino IDE → 文件 → 首选项 → 附加开发板管理器网址
https://dl.espressif.com/dl/package_esp32_index.json然后在 开发板管理器 中搜索并安装 ESP32。
库管理
# 通过 Arduino IDE
库管理器 → 搜索需要的库
# 手动安装
# 将库解压到 ~/Arduino/libraries/常用库
| 库名 | 用途 |
|---|---|
| WiFi | WiFi 连接 |
| BLEDevice | 蓝牙低功耗 |
| PubSubClient | MQTT 客户端 |
| ArduinoJSON | JSON 解析 |
| NTPClient | 网络时间同步 |
PlatformIO 配置
platformio.ini
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = esp-idf
monitor_speed = 115200
upload_speed = 921600
build_flags =
-DCORE_DEBUG_LEVEL=3
-DWIFI_SSID=\"YourSSID\"
-DWIFI_PASSWORD=\"YourPassword\"
lib_deps =
knolleary/PubSubClient@^2.8.0
bblanchon/ArduinoJson@^6.21.0常用命令
pio run # 编译
pio run --target upload # 烧录
pio device monitor # 串口监视
pio test # 单元测试调试配置
OpenOCD + GDB
# 启动 OpenOCD
openocd -f board/esp32-wroom-32.cfg
# 启动 GDB
xtensa-esp32-elf-gdb build/project.elf -ex "target remote localhost:3333"日志输出
#include "esp_log.h"
static const char *TAG = "MAIN";
void app_main(void)
{
ESP_LOGI(TAG, "System started");
ESP_LOGW(TAG, "Warning message");
ESP_LOGE(TAG, "Error: something wrong");
}日志级别
ESP_LOG_NONE // 关闭日志
ESP_LOG_ERROR // 错误
ESP_LOG_WARN // 警告
ESP_LOG_INFO // 信息
ESP_LOG_DEBUG // 调试
ESP_LOG_VERBOSE // 详细
下一步
- 学习 04_核心编程 掌握 FreeRTOS
- 学习 05_GPIO_外设 实践外设控制
参考资料
ESP-IDF 官方
- ESP-IDF 编程指南 - 官方开发文档
- ESP-IDF GitHub - 源码仓库
- ESP-IDF 版本说明 - 各版本更新日志
- ESP-IDF API 参考
安装工具
- ESP-IDF Tools Installer - Windows 一键安装
- Python 下载 - Python 3.8+
Arduino & PlatformIO
- Arduino ESP32 库 - Arduino 支持
- PlatformIO ESP32 - PlatformIO 文档
调试工具
- esptool.py - ESP32 烧录工具
- OpenOCD ESP32 - 调试配置
图片参考

相关链接
反向链接
- 01_入门指南 - 开发板介绍、环境搭建、快速开始
- 02_硬件基础 - ESP32芯片架构、引脚定义、硬件特性
- 04_核心编程 - FreeRTOS、任务管理、内存管理
- 05_GPIO_外设 - 通用输入输出、LEDC、PWM
- README - 学习笔记索引首页
进阶学习
- 04_核心编程 - 掌握 FreeRTOS
- 05_GPIO_外设 - 实践外设控制