01 - 入门指南
ESP32开发入门指引
ESP32 简介
ESP32 是乐鑫科技推出的 低功耗系统级芯片,集成 WiFi 和蓝牙功能,广泛用于 IoT 开发。
主要特性
| 特性 | 参数 |
|---|---|
| CPU | Xtensa® LX6 双核 @ 240MHz |
| 内存 | 520KB SRAM |
| 存储 | 4MB Flash (可扩展) |
| WiFi | 802.11 b/g/n |
| 蓝牙 | BR/EDR + BLE 4.2 |
| 工作电压 | 2.3V ~ 3.6V |
常见开发板
- ESP32 DEVKIT V1 - 最常见,30/36引脚
- ESP32-WROOM-32 - 模块形式
- ESP32-S3 - 强化版,支持更大内存
- ESP32-C3 - RISC-V 架构入门选择
环境搭建
方案一:ESP-IDF (推荐)
# Linux/macOS
git clone https://github.com/espressif/esp-idf.git
cd esp-idf
./install.sh esp32
source export.sh
# Windows
# 下载 ESP-IDF 安装包或使用 ESP-IDF PowerShell方案二:Arduino IDE
- 下载安装 Arduino IDE
- 打开 文件 → 首选项 → 附加开发板管理器网址
- 添加:
https://dl.espressif.com/dl/package_esp32_index.json - 工具 → 开发板 → ESP32 → 选择对应型号
- 工具 → 管理库 → 安装 ESP32
方案三:PlatformIO
# 安装 PlatformIO
pip install platformio
# 创建项目
pio project init --board esp32dev第一个程序:Blink
硬件连接
ESP32 LED
GPIO2 ----- LED(+) (串联220Ω电阻)
GND ----- LED(-)
ESP-IDF 代码
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "esp_log.h"
#define LED_GPIO 2
void app_main(void)
{
gpio_reset_pin(LED_GPIO);
gpio_set_direction(LED_GPIO, GPIO_MODE_OUTPUT);
while (1) {
gpio_set_level(LED_GPIO, 1);
vTaskDelay(1000 / portTICK_PERIOD_MS);
gpio_set_level(LED_GPIO, 0);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
}Arduino 代码
#define LED_PIN 2
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN, HIGH);
delay(1000);
digitalWrite(LED_PIN, LOW);
delay(1000);
}烧录与调试
串口驱动
- Windows: CH340/CP2102 驱动
- macOS: 通常自动识别
- Linux: 内置支持
常用工具
| 工具 | 用途 |
|---|---|
| esptool.py | 烧录固件 |
| idf.py monitor | 串口监视器 |
| ESP Device Configuration | 调试配置 |
下一步
参考资料
官方文档
- ESP32 技术规格书 - 芯片完整规格
- ESP-IDF 编程指南 - 官方开发文档
- Arduino ESP32 Core - Arduino 支持库
开发板参考
社区资源
- ESP32 官方论坛
- ESP-IDF GitHub
- Awesome ESP32 - 精选资源列表