# fatfs_wav_player_basic



## 用例说明

本例演示从SD卡读取wav音频文件，在MCU上提取PCM数据，然后通过I2S和DMA将数据送至开发板上的DAC芯片上，进而输出到喇叭，实现播放歌曲的功能。本例中利用DMA的半中断机制，将一大段DMA传输分成两小段，实现了ping-pang buffer机制，播放其中一段缓冲区的同时，MCU可从SD卡中搬运数据到另一段缓冲区，最终确保播放数据的连续性。

特别要注意，wav文件需设定为44.1khz采样频率、16位有符号数pcm。

## 操作过程

+ 在PC机上使用音频处理软件（例如Audacity）将音频文件转换成特定格式：44100Hz采样率、16位数据、2声道。
+ 将处理好的数据存入SD卡的根目录下，插入开发板的SD卡插座。请尽量选用4GB-16GB容量的SD卡。
+ 在PC机上启动UART串口调试终端（例如Tera Term），连接到开发板。
+ 编译本样例工程，下载可执行程序到开发板。
+ 在UART串口终端看到运行程序后打印的提示信息后，输入任意字符后。程序运行开始逐个播放SD卡根目录下的所有wav文件。

## 运行log

~~~bash
fatfs_wav_player.
press any key to continue ...
init sd card ok.
playing 1:/1.WAV ...
app_fs_play_wav_file() done.
playing 1:/2.WAV ...
app_fs_play_wav_file() done.
loop done.
~~~



