完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近想使用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 条评论
1个回答
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 04:17 , Processed in 0.726567 second(s), Total 111, Slave 90 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号