ESP32 开发入门指南
C:\Program Files (x86)\Arduino\;也可更改为 D 盘)。File → Preferences,找到 "Additional Boards Manager URLs"。
添加以下 URL(可同时添加多个,用逗号分隔):
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
https://dl.espressif.com/dl/package_esp32_index.json
开发板接口采用CH340芯片,安装步骤如下:
CH341SER.EXE)。工具 → 开发板 → ESP32 Arduino → 选择对应型号。
注意:本开发板为 ESP32 兼容开发板,可以选择 "ESP32 Dev Module"。
在工具菜单(Tools)中配置:
新建文件,输入以下代码(功能:验证 Arduino IDE + ESP32 环境是否配置成功):
// 定义板载LED引脚,避免使用"魔法数字"
#define LED_PIN 2
void setup() {
// 初始化串口通信
Serial.begin(115200);
// 初始化板载LED引脚为输出模式
pinMode(LED_PIN, OUTPUT);
}
void loop() {
Serial.println("Hello ESP32!");
digitalWrite(LED_PIN, HIGH); // 点亮LED
delay(1000); // 等待1秒
digitalWrite(LED_PIN, LOW); // 熄灭LED
delay(1000); // 等待1秒
}
💡 编程小知识:#define vs const int
在定义引脚时,通常有两种方式,本教程采用第一种(宏定义):
#define LED_PIN 2 (宏定义):预处理指令。编译器在编译前单纯进行文本替换(把代码中所有的 LED_PIN 换成 2)。不占用程序内存,是传统的 C 语言写法。const int ledPin = 2; (常量变量):变量声明。定义了一个只读的整数变量。有类型检查,更安全,是现代 C++ 推荐的写法。在嵌入式开发中两者都很常见,为了节省极其有限的内存资源,老派程序员更倾向于使用 #define。
问题1: A fatal error occurred: Failed to connect to ESP32
解决: 按住 BOOT 按钮,点击上传,当出现 "Connecting..." 时松开。
问题2: Timed out waiting for packet header
解决: 降低上传波特率(921600 → 115200)。
问题: 端口不显示或显示为未知设备
解决:
问题: 编译错误,缺少库文件
解决:
🤔 思考题:
Serial.begin(115200) 不一致,会发生什么现象?为什么?delay(1000) 数值,观察 LED 闪烁频率的变化。