新手入门
- 积分
- 7
- 金钱
- 7
- 注册时间
- 2017-9-12
- 在线时间
- 8 小时
|
13金钱
用STM32F1战舰版测试音频采样率的,都是单声道,16位PCM,通过定时3S录音,生成的文件大小进行校验设置结果,结果发现8/16/24/32KHZ,生成的文件分别50kb、100kb、150kb、200kb。后面44.khz与48khz都是200kb大小,不知道哪里出了问题,设置代码如下,求各位大佬解答一下,在下感激不尽。
[mw_shl_code=c,false]void recoder_enter_rec_mode(u16 agc)
{
//如果是IMA ADPCM,采样率计算公式如下:
//采样率=CLKI/256*d;
//假设d=0,并2倍频,外部晶振为12.288M.那么Fc=(2*12288000)/256*6=16Khz
//如果是线性PCM,采样率直接就写采样值
VS_WR_Cmd(SPI_BASS,0x0000);
//// VS_WR_Cmd(SPI_AICTRL0,8000); //设置采样率,设置为8Khz
VS_WR_Cmd(SPI_AICTRL0,48000); //设置采样率,设置为48Khz
VS_WR_Cmd(SPI_AICTRL1,agc); //设置增益,0,自动增益.1024相当于1倍,512相当于0.5倍,最大值65535=64倍
VS_WR_Cmd(SPI_AICTRL2,0); //设置增益最大值,0,代表最大值65536=64X
VS_WR_Cmd(SPI_AICTRL3,6); //左通道(MIC单声道输入) 并设置为线性PCM模式 (第3位bit控制 IMA ADPCM或线性PCM 切换)
VS_WR_Cmd(SPI_CLOCKF,0X2000); //设置VS10XX的时钟,MULT:2倍频;ADD:不允许;CLK:12.288Mhz
VS_WR_Cmd(SPI_MODE,0x1804); //MIC,录音激活
delay_ms(5); //等待至少1.35ms
VS_Load_Patch((u16*)wav_plugin,40);//VS1053的WAV录音需要patch
}[/mw_shl_code]
|
|