最近想使用vs1003录音但不保存录音文件,也不使用fatfs文件系统 ,只要实现在录音的时候对着麦克
喊话,耳机能听到自己的声音即可
原子哥 怎么办
代码如下
//录音机
//所有录音文件,均保存在SD卡RECORDER文件夹内.
u8 recoder_play(void)
{
u8 res;
u8 key;
u8 rval=0;
// __WaveHeader wavhead[512];
u32 sectorsize=0;
//录音状态
u8 wavhead[512];
u8 recagc=0; //默认增益为4
//内存申请OK
VS_WR_Cmd(SPI_BASS,0x0000);
VS_WR_Cmd(SPI_AICTRL0,8000); //设置采样率,设置为8Khz
VS_WR_Cmd(SPI_AICTRL1,1024*4); //设置增益,0,自动增益.1024相当于1倍,512相当于0.5倍,最大值65535=64倍
VS_WR_Cmd(SPI_AICTRL2,0); //设置增益最大值,0,代表最大值65536=64X
VS_WR_Cmd(SPI_AICTRL3,6); //左通道(MIC单声道输入)
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
// recoder_enter_rec_mode(recagc);
while(VS_RD_Reg(SPI_HDAT1)>>8); //
while(1){
rec_play_wav(wavhead);
}
}
u8 rec_play_wav(u8 *pname)
{
FIL* fmp3;
u16 br;
u8 res,rval=0;
u8 *databuf;
u16 i=0;
u8 n;
VS_HD_Reset(); //硬复位
VS_Soft_Reset(); //软复位
VS_Set_Vol(220); //设置音量
ResetDecodeTime();//复位解码时间//VS_Reset_DecodeTime(); //复位解码时间
SPI2_SetSpeed(SPI_SPEED_4);
do //主播放循环
{
if(VS_DQ!=0) // 非暂停 送数据给VS1003
{
VS_XDCS_RST;
for(n=0;n<32;n++)
{
SPI2_ReadWriteByte(pname[i++]);
}
VS_XDCS_SET;
}
}while(i<511);//循环发送512个字节
}
|