开始前适用开发板:ESP32-P4 + ESP32-C5 · 开发框架:ESP-IDF
适用开发板:P4C5 · 工程
03.development.audio_record_play· targetesp32p4
学习时长:约 20 分钟 · 难度:★★★☆☆
学习目标
完成本节后,你将能够:
- 理解 I2S 全双工音频在 P4C5 上的实现
- 掌握 ES7210 录音 + ES8311 播放的协作
1. 这个例子在干嘛
功能与 Korvo audio_record_play 相同——I2S 全双工录音→PSRAM 暂存→回放。LVGL 界面提供红/绿按钮控制。
麦克风 → ES7210(ADC) → I2S → PSRAM(~6s) → I2S → ES8311(DAC) → 扬声器
↑
LVGL 按钮:🔴录音 / 🟢播放
2. 编译烧录
cd P4_C5_4.3_Firmware\03.development.audio_record_play
idf.py set-target esp32p4
idf.py build flash monitor
3. 使用步骤
- 屏幕出现红/绿按钮
- 红色 → 录音(~6 秒)
- 绿色 → 播放
4. 与 Korvo 版的区别
| 对比 | Korvo | P4C5 |
|---|---|---|
| 显示 | SPI 240×280 | MIPI 480×800 |
| 主控 | S3 | P4(更大 PSRAM,可录更长) |
| 音频 Codec | ES7210+ES8311 | 相同 |
| I2C 地址 | 0x40/0x18 | 相同 |
5. 常见问题与排查
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| 录音无声 | ES7210 I2C 失败 | 串口看错误;跑 board_test |
| 播放杂音 | 采样率不匹配 | 录/播采样率一致 |
| 录音太短 | PSRAM 分配 | 降采样率延长 |
详细技术原理、音频参数、代码流程参见 Korvo 录音播放。
6. 下一步
| 方向 | 推荐例程 | 说明 |
|---|---|---|
| MP3 播放 | MP3 Player | 文件播放 |
| 音频频谱 | Audio FFT | 频谱可视化 |
| 详细原理 | Korvo 录音播放 | 完整讲解 |
酷世DIY · Kevincoooool