音视频技术学习
直播中

胡芝恒

7年用户 241经验值
私信 关注
[问答]

使用vs1003录音问题

最近想使用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个字节
         
           
}

回帖(1)

王龙

2019-1-10 10:37:27
开启了录音模式,耳机就可以听到麦克风采集到的声音了.
根本不要做其他处理.
举报

更多回帖

发帖
×
20
完善资料,
赚取积分