void wav_pre_read(void) { u32 index = 0; flash_bytes_read(index, (u8 *)buffer1, 0x100); while(WaveParsing()); WaveLen = WAVE_Format.DataSize; I2S_Freq_Config(WAVE_Format.SampleRate); }
void Wavplay(void) { FATFS fatfs; FIL fileR; UINT BytesRead; u8 i=0; f_mount(0, &fatfs); f_open(&fileR, "0:/wav/1.wav" , FA_READ); f_read(&fileR, buffer1, 1024, &BytesRead); while(WaveParsing()) printf("file read error"); WaveLen = WAVE_Format.DataSize; AUDIO_Init(WAVE_Format.SampleRate); f_lseek(&fileR, WaveCounter);//跳过文件头 f_read(&fileR, buffer1, 1024, &BytesRead); f_read(&fileR, buffer2, 1024, &BytesRead); Audio_MAL_Play((u32)buffer1, 1024); buffer_switch=1; XferCplt=0; while(WaveLen!=0) { while(XferCplt==0); XferCplt=0; if(buffer_switch==0) { Audio_MAL_Play((u32)buffer1,1024);//从buffer1播放 f_read(&fileR,buffer2,1024,&BytesRead);//填充buffer2 buffer_switch=1; } else { Audio_MAL_Play((u32)buffer2,1024);//从buffer2播放 f_read(&fileR,buffer1,1024,&BytesRead);//填充buffer1 buffer_switch=0; } i++; if(i==100) { i=0; } } }