stm32f407 wm8978录音问题求指导,谢谢!

2019-07-20 10:46发布

本帖最后由 skyqiu 于 2016-8-29 17:19 编辑

wm8978录音,如何设置单声道、立体声模式?原子的代码是立体声的吧?
如果要改为单声道,除了这个初始化WAV头需要修改,还有其他什么地方需要修改吗?最好能详细点,求指导,谢谢!

//初始化WAV头.
void recoder_wav_init(__WaveHeader* wavhead) //初始化WAV头                           
{
        wavhead->riff.ChunkID=0X46464952;        //"RIFF"
        wavhead->riff.ChunkSize=0;                        //还未确定,最后需要计算
        wavhead->riff.Format=0X45564157;         //"WAVE"
        wavhead->fmt.ChunkID=0X20746D66;         //"fmt "
        wavhead->fmt.ChunkSize=16;                         //大小为16个字节
        wavhead->fmt.AudioFormat=0X01;                 //0X01,表示PCM;0X01,表示IMA ADPCM
         wavhead->fmt.NumOfChannels=2;//双声道 单声道为1?
         wavhead->fmt.SampleRate=SampleRate;                //16Khz采样率 采样速率
          wavhead->fmt.ByteRate=wavhead->fmt.SampleRate*4;//字节速率=采样率*通道数*(ADC位数/8)   单声道设置为wavhead->fmt.SampleRate*2
         wavhead->fmt.BlockAlign=4;                        //块大小=通道数*(ADC位数/8)               单声道为2?
         wavhead->fmt.BitsPerSample=16;                //16位PCM
       wavhead->data.ChunkID=0X61746164;        //"data"
         wavhead->data.ChunkSize=0;                        //数据大小,还需要计算  
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。