Skip to content

在Demo中,ESP32 通过 `SPI` 接口读取 SD 卡中的 WAV 文件,利用 `I2S` ,将音频数据传递给 MAX98357A 放大器进行播放。

Notifications You must be signed in to change notification settings

ClarkWain/ESP32_MAX98357A_PLAY_WAV_Demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESP32 + MAX98357A 播放WAV文件项目

项目简介

我最近在学习 ESP32 的音频播放功能,编写了一个简单的音频播放Demo。 在Demo中,ESP32 通过 SPI 接口读取 SD 卡中的 WAV 文件,利用 I2S ,将音频数据传递给 MAX98357A 放大器进行播放。

硬件组成

  • ESP32 开发板
  • MAX98357A I2S 数字放大器
  • 扬声器或耳机
  • 连接线

软件依赖

  • ESP-IDF 开发框架
  • C 编程环境

项目结构

ESP32_MAX98357A_PLAY_WAV_Demo/
├── main/
│   └── main.c
├── README.md
└── ...

硬件连接

将 ESP32 与 MAX98357A 连接如下:

这是一个硬件连线图

  • I2S0_BCLK (GPIO 19) -> BCLK
  • I2S0_WS (GPIO 20) -> WS
  • I2S0_DO (GPIO 18) -> DIN
  • I2S0_DI (-1) -> 不连接
  • 电源和地线 -> 按照 MAX98357A 模块的引脚说明连接

软件配置与编译

  1. 设置 ESP-IDF 环境:确保已正确安装 ESP-IDF 并配置环境变量。
  2. 克隆项目代码
    git clone https://github.com/ClarkWain/ESP32_MAX98357A_PLAY_WAV_Demo
    cd ESP32_MAX98357A_PLAY_WAV_Demo
  3. 配置项目
    idf.py menuconfig
    • 设置串口端口、波特率等参数。
  4. 编译并烧录
    idf.py build
    idf.py flash
  5. 监视输出
    idf.py monitor

使用方法

  1. 在 SD 卡根目录放置一个名为 test.wav 的音频文件。
  2. 通过 idf.py build && idf.py flash 烧录程序到 ESP32,随后运行。
  3. 使用 idf.py monitor 观察输出日志,确认播放过程正常。
  4. 若需要播放其他文件或修改接口参数,可在 main.c 中进行相应调整。

注意事项

  • 确保 WAV 文件为标准 16 位或 24 位音频格式,并与 main.c 中的采样率及通道数设置匹配。
  • 如果播放出现噪音或中断,请检查引脚连接及 DMA 缓冲区设置。

About

在Demo中,ESP32 通过 `SPI` 接口读取 SD 卡中的 WAV 文件,利用 `I2S` ,将音频数据传递给 MAX98357A 放大器进行播放。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published