# arduino-notes
**Repository Path**: coyoooo/arduino-notes
## Basic Information
- **Project Name**: arduino-notes
- **Description**: arduino-notes
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-04-30
- **Last Updated**: 2025-10-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: Arduino, ESP32, stm32
## README
# Arduino 开发详细入门文档
## 一、ESP32 简介
ESP32 是由 Espressif 公司发展的高性能 Wi-Fi + Bluetooth 联合型单片机,充分支持 Arduino 开发,适合初学者快速开始连接规划设备。
`ESP32 特点:`
- 支持 2.4GHz Wi-Fi & Bluetooth
- 多核 CPU (Xtensa Dual-core)
- 高速 GPIO / ADC / DAC / PWM / UART / SPI / I2C 等多种外设
- 内存和 Flash 足够开发应用
## 二、安装 ESP32 Arduino 开发环境
### 1. 安装 Arduino IDE
`软件下载` :https://www.arduino.cc/en/software
`开发环境` :支持 Windows/macOS/Linux
### 2. 配置 ESP32 开发板支持
1. 打开 IDE 后,点击 **File > Preferences**
2. 在 **Additional Board Manager URLs** 增加:
```
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
```
esp32开发板国内镜像:
```c
https://jihulab.com/esp-mirror/espressif/arduino-esp32/-/raw/gh-pages/package_esp32_index_cn.json
```
3. 打开 **Tools > Board > Boards Manager**
4. 搜索 `esp32`,安装 Espressif Systems 插件
### 3. 选择开发板
- 进入 **Tools > Board**,选择 "ESP32 Dev Module"
- 通过 **Tools > Port** 选择与板子连接的 COM端口
## 三、创建工程
### 1、PlatformIO
`安装插件`
`新建工程`
`命名工程 -> 选择芯片 -> 选择开发模式 -> 工程保存位置`
`注意:` 保存位置不能有中文,否则编译报错!!!
`工程结构`
### 2、PIO配置详情
```c
[env:esp32dev]
platform = espressif32@6.12.0
board = esp32dev
;框架设置
framework = arduino
;串口监视器波特率
monitor_speed = 115200
;上传端口
upload_port = COM1
;程序下载速率
upload_speed = 921600
;依赖库
lib_deps = fastled/FastLED@^3.10.1
;设置USB打印
build_flags =
-D ARDUINO_USB_CDC_ON_BOOT=1
-D ARDUINO_USB_MODE=θ
build_unflags =
-DARDUINO_USB_MODE=1
;默认分区表
board_build.partitions = no_ota.csv
; 设置 CPU 主频为 240 MHz
board_build.f_cpu = 240000000L
```
👉`自定义分区表`
在项目根目录创建 `partitions.csv` 文件
```c
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x5000,
otadata, data, ota, 0xe000, 0x2000,
app0, app, ota_0, 0x10000, 0x200000,
spiffs, data, spiffs, 0x210000, 0x1EF000,
```
`在代码中动态修改频率(运行时修改)`
```c
#include "esp_pm.h"
#include "esp_system.h"
void setup() {
Serial.begin(115200);
// 将 CPU 频率设置为 240 MHz
setCpuFrequencyMhz(240);
Serial.print("Current CPU Freq: ");
Serial.print(getCpuFrequencyMhz());
Serial.println(" MHz");
}
void loop() {
}
```
📌可用函数:
```c
setCpuFrequencyMhz(80);
setCpuFrequencyMhz(160);
setCpuFrequencyMhz(240);
```
📌查看当前频率:
```c
uint32_t freq = getCpuFrequencyMhz();
```
```c
; 设置 Flash 频率为 80 MHz
board_build.f_flash = 80000000L
```
📙 配合 Flash 模式一起使用(可选)
有时候你还会看到 `board_build.flash_mode` 一起设置:
```c
board_build.flash_mode = qio
board_build.f_flash = 80000000L
```
📌`推荐稳定组合`
```c
; CPU 主频与 Flash 频率配置
board_build.f_cpu = 240000000L
board_build.f_flash = 80000000L
board_build.flash_mode = qio
```
🗒️ `启用 PSRAM`
```c
; 启用 PSRAM 并设置为 OPI 模式
board_build.psram = enabled
board_build.psram_mode = opi
board_build.psram_size = 8MB
```