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

  1. 下载 ESP-IDF Tools Installer
  2. 选择安装路径和 ESP-IDF 版本
  3. 完成安装,自动配置环境

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.sh

ESP-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 fullclean

esptool.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_flash

常用配置项

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/

常用库

库名用途
WiFiWiFi 连接
BLEDevice蓝牙低功耗
PubSubClientMQTT 客户端
ArduinoJSONJSON 解析
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    // 详细

下一步


参考资料

ESP-IDF 官方

安装工具

Arduino & PlatformIO

调试工具

图片参考

ESP-IDF 环境架构


相关链接

反向链接

进阶学习