# ESP32-P4-Platform
**Repository Path**: waveshare/esp32-p4-platform
## Basic Information
- **Project Name**: ESP32-P4-Platform
- **Description**: ESP32-P4系列开发板程序示例集合
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 6
- **Forks**: 5
- **Created**: 2026-02-27
- **Last Updated**: 2026-06-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ESP32-P4 Platform 示例
[English Version](./README.md)
本仓库提供 Waveshare ESP32-P4 系列开发板的开源示例和板级 bring-up 参考。
本仓库收集了 ESP-IDF 和 Arduino 示例,覆盖 ESP32-P4 平台常见能力,包括
GPIO、I2C、Wi-Fi、Ethernet、SD card、audio codec、display、LVGL、
camera、video streaming 和 ESP-Brookesia UI 工作流。
## 支持的开发板
| 开发板 | 产品 |
| --- | --- |
| ESP32-P4-NANO |
|
| ESP32-P4-Module-DEV-KIT |
|
| ESP32-P4-WIFI6-DEV-KIT |
|
| ESP32-P4-WIFI6 |
|
| ESP32-P4-ETH |
|
| ESP32-P4-Pico |
|
| ESP32-P4-WIFI6-POE-ETH |
|
| ESP32-P4-Core-DEV-KIT |
|
## 仓库结构
```text
.
├── examples/
│ ├── esp-idf/ ESP-IDF 示例,每个目录一个工程
│ └── arduino/ Arduino sketches 和随附示例库
├── config/ 共享 ESP-IDF 配置 overlay
├── docs/ 仓库结构和维护者说明
├── .github/ Issue 和 Pull Request 模板
├── CONTRIBUTING.md 贡献流程
├── SUPPORT.md 支持渠道
├── SECURITY.md 安全漏洞报告策略
└── LICENSE.txt Apache-2.0 许可证
```
如果是第一次使用本仓库,请从 [快速开始](docs/GETTING_STARTED_CN.md) 开始。
关于新增示例和文档应放置的位置,请参见
[项目结构](docs/PROJECT_STRUCTURE_CN.md)。
## 文档
| 文档 | 读者 | 用途 |
| --- | --- | --- |
| [快速开始](docs/GETTING_STARTED_CN.md) | 初学者 | 第一次构建、烧录和 monitor 工作流 |
| [示例指南](docs/EXAMPLES_GUIDE_CN.md) | 所有用户 | 按难度和外设选择示例 |
| [ESP32-P4 版本配置](docs/ESP32P4_REVISION_CONFIG_CN.md) | 所有用户 | 选择 v3.x 量产或 pre-v3 样片构建 profile |
| [故障排查](docs/TROUBLESHOOTING_CN.md) | 所有用户 | 构建、烧录、运行时和外设检查 |
| [持续集成](docs/CI_CN.md) | 贡献者 | ESP-IDF 示例的 GitHub Actions 覆盖 |
| [示例路线图](docs/EXAMPLE_ROADMAP_CN.md) | 贡献者 | 可改进覆盖范围的建议示例 |
| [项目结构](docs/PROJECT_STRUCTURE_CN.md) | 贡献者 | 仓库布局和示例要求 |
## 快速开始
### ESP-IDF 示例
1. 安装 ESP-IDF。本仓库中大多数示例基于 ESP-IDF release/v5.4 或更高版本
准备。部分高级 UI 示例会在自己的 README 中记录 release/v5.3 兼容性。
2. 克隆本仓库。
3. 如果你是第一次使用该开发板或本仓库,请先运行
[00_board_check](examples/esp-idf/00_board_check/)。
4. 设置目标芯片并构建:
```bash
cd examples/esp-idf/00_board_check
idf.py set-target esp32p4
idf.py build
```
5. 如果你使用早于 rev v3.0 的 ESP32-P4 早期工程样片,或者需要将量产固件
固定到 rev v3.0 或 v3.1,请在烧录前阅读
[ESP32-P4 版本配置](docs/ESP32P4_REVISION_CONFIG_CN.md)。
6. 烧录并打开 monitor,将 `PORT` 替换为你的串口:
```bash
idf.py -p PORT flash monitor
```
构建需要板级专属设置、网络凭据、显示选项、摄像头传感器或 PHY 配置的示例
前,请先运行 `idf.py menuconfig`。
### Arduino 示例
Arduino 示例位于 [examples/arduino](examples/arduino)。推荐从
[examples/arduino/README.md](examples/arduino/README.md) 开始,了解推荐的
Arduino-ESP32 core、随附 LVGL 版本、Arduino_GFX 版本以及 I2C driver 兼容性
说明。
## 示例索引
| 编号 | 示例 | 范围 |
| --- | --- | --- |
| 00 | [board_check](examples/esp-idf/00_board_check/) | 首次运行的开发板和工具链检查 |
| 01 | [HowToCreateProject](examples/esp-idf/01_HowToCreateProject/) | 最小 ESP-IDF 工程结构 |
| 02 | [HelloWorld](examples/esp-idf/02_HelloWorld/) | 基础 ESP-IDF 应用 |
| 03 | [nvs_counter](examples/esp-idf/03_nvs_counter/) | 使用 NVS 保存持久化设置 |
| 04 | [freertos_tasks](examples/esp-idf/04_freertos_tasks/) | 任务和队列 |
| 05 | [gpio_io](examples/esp-idf/05_gpio_io/) | GPIO 输入/输出 |
| 06 | [gpio_interrupt](examples/esp-idf/06_gpio_interrupt/) | GPIO 中断和消抖 |
| 07 | [uart_loopback](examples/esp-idf/07_uart_loopback/) | UART 发送/接收回环 |
| 08 | [i2c_tools](examples/esp-idf/08_i2c_tools/) | I2C 扫描和命令行工具 |
| 09 | [sdmmc](examples/esp-idf/09_sdmmc/) | SD card 和 SDMMC |
| 10 | [wifistation](examples/esp-idf/10_wifistation/) | Wi-Fi Station 连接 |
| 11 | [ethernetbasic](examples/esp-idf/11_ethernetbasic/) | Ethernet bring-up |
| 12 | [I2SCodec](examples/esp-idf/12_I2SCodec/) | I2S audio codec |
| 13 | [Displaycolorbar](examples/esp-idf/13_Displaycolorbar/) | LCD display color bar |
| 14 | [lvgl_demo_v9](examples/esp-idf/14_lvgl_demo_v9/) | LVGL v9 display demo |
| 15 | [eth2ap](examples/esp-idf/15_eth2ap/) | Ethernet-to-AP 网络 |
| 16 | [video_lcd_display](examples/esp-idf/16_video_lcd_display/) | 摄像头视频输出到 LCD |
| 17 | [simple_video_server](examples/esp-idf/17_simple_video_server/) | HTTP 摄像头流媒体 |
| 18 | [esp_brookesia_phone](examples/esp-idf/18_esp_brookesia_phone/) | ESP-Brookesia Phone UI |
| 19 | [system_monitor](examples/esp-idf/19_system_monitor/) | 串口诊断和运行时监控 |
如需更完整的 ESP-IDF 和 Arduino 示例地图,请参见
[examples/README.md](examples/README.md) 和
[示例指南](docs/EXAMPLES_GUIDE_CN.md)。
## ESP-IDF 兼容性矩阵
图例:`✅` 表示该示例预期可在该开发板上运行。`❌` 表示示例所需外设不可用
或该示例未支持该开发板。
| 编号 | 示例 | ESP32-P4-NANO | ESP32-P4-Module-DEV-KIT | ESP32-P4-WIFI6-DEV-KIT | ESP32-P4-WIFI6 | ESP32-P4-ETH | ESP32-P4-Pico | ESP32-P4-WIFI6-POE-ETH | ESP32-P4-Core-DEV-KIT |
| --- | --- | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| - | 产品页 |
|
|
|
|
|
|
|
|
| 00 | [board_check](examples/esp-idf/00_board_check/) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 01 | [HowToCreateProject](examples/esp-idf/01_HowToCreateProject/) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 02 | [HelloWorld](examples/esp-idf/02_HelloWorld/) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 03 | [nvs_counter](examples/esp-idf/03_nvs_counter/) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 04 | [freertos_tasks](examples/esp-idf/04_freertos_tasks/) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 05 | [gpio_io](examples/esp-idf/05_gpio_io/) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 06 | [gpio_interrupt](examples/esp-idf/06_gpio_interrupt/) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 07 | [uart_loopback](examples/esp-idf/07_uart_loopback/) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 08 | [i2c_tools](examples/esp-idf/08_i2c_tools/) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 09 | [sdmmc](examples/esp-idf/09_sdmmc/) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| 10 | [wifistation](examples/esp-idf/10_wifistation/) | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ |
| 11 | [ethernetbasic](examples/esp-idf/11_ethernetbasic/) | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ |
| 12 | [I2SCodec](examples/esp-idf/12_I2SCodec/) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| 13 | [Displaycolorbar](examples/esp-idf/13_Displaycolorbar/) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 14 | [lvgl_demo_v9](examples/esp-idf/14_lvgl_demo_v9/) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 15 | [eth2ap](examples/esp-idf/15_eth2ap/) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ |
| 16 | [video_lcd_display](examples/esp-idf/16_video_lcd_display/) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 17 | [simple_video_server](examples/esp-idf/17_simple_video_server/) | ✅ | ✅ | ✅ | ✅ | ✅, Ethernet | ❌ | ✅ | ❌ |
| 18 | [esp_brookesia_phone](examples/esp-idf/18_esp_brookesia_phone/) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 19 | [system_monitor](examples/esp-idf/19_system_monitor/) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
## 贡献
欢迎贡献。提交 Pull Request 前,请阅读 [CONTRIBUTING.md](CONTRIBUTING.md)。
有价值的贡献包括:
- 修复受支持开发板上的构建问题。
- 在现有示例 README 中添加板级专属说明。
- 改进 setup 说明或 troubleshooting 说明。
- 添加目前尚未覆盖的聚焦外设示例。
报告问题时,请包含开发板名称、ESP-IDF 或 Arduino-ESP32 版本、串口日志和
具体示例路径。
支持渠道说明请参见 [SUPPORT.md](SUPPORT.md)。
## 第三方代码
部分示例随附第三方组件或库以方便使用,包括 LVGL、Arduino_GFX、
ESP-Brookesia 相关组件和 Espressif managed components。高层级清单请参见
[THIRD_PARTY.md](THIRD_PARTY.md),并检查每个随附组件自己的许可证文件。
## 安全
请不要在公开 issue 中报告安全漏洞。请按照 [SECURITY.md](SECURITY.md) 进行
负责任披露。
## 许可证
本仓库基于 Apache License 2.0 授权。详情请参见 [LICENSE.txt](LICENSE.txt)。