OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4558|回复: 5

VS1003录音后无法播放

[复制链接]

4

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2015-4-20
在线时间
13 小时
发表于 2015-4-20 18:37:32 | 显示全部楼层 |阅读模式
5金钱
我目前已经实现了VS1003的录音功能,能在耳机里听到自己的声音,然后按照官方的代码将数据读出并且存在了FLASH里,但是直接从FLASH里将数据读出送到VS1003里却没有任何反应,这是怎么回事啊?
[mw_shl_code=c,true]void VS1003_SoftReset(void) { uint8_t retry; while( MP3_DREQ ==0 ); VS1003_SPI_ReadWriteByte(0xff); retry = 0; while( VS1003_ReadReg(0) != 0x0804 ) { VS1003_WriteReg(SPI_MODE,0x0804); delay_ms(2); if( retry++ > 100 ) { break; } } while( MP3_DREQ ==0 ); retry = 0; while( VS1003_ReadReg(SPI_CLOCKF) != 0X9800 ) /* ?è??vs1003???±??,3±??? ,1.5xADD */ { VS1003_WriteReg(SPI_CLOCKF,0X9800); /* ?è??vs1003???±??,3±??? ,1.5xADD */ if( retry++ > 100 ) { break; } } retry = 0; VS1003_WriteReg(11,0x2020); MP3_DCS(0); VS1003_SPI_ReadWriteByte(0); VS1003_SPI_ReadWriteByte(0); VS1003_SPI_ReadWriteByte(0); VS1003_SPI_ReadWriteByte(0); MP3_DCS(1); delay_ms(20); } [/mw_shl_code]

[mw_shl_code=c,true]void VS1003_Record_Init(void) { /* Set ample rate divider=12 */ while( VS1003_ReadReg(SPI_AICTRL0) != 0x0012 ) { VS1003_WriteReg(SPI_AICTRL0,0x0012); delay_ms(2); } /* AutoGain OFF, reclevel 0x1000 */ while( VS1003_ReadReg(SPI_AICTRL1) != 0 ) { VS1003_WriteReg(SPI_AICTRL1,0x1000); delay_ms(2); /* ????????1.35ms */ } while( VS1003_ReadReg(SPI_CLOCKF) != 0x9800 ) { VS1003_WriteReg(SPI_CLOCKF,0x9800); delay_ms(2); /* ????????1.35ms */ }
[mw_shl_code=c,true]unsigned char led[1024]; unsigned char led2[2048]; unsigned int SEC_CAL; uint32_t flash_ID; #define FLASH_ID 0XEF14 int main(void) { unsigned int br; unsigned int x=0; unsigned char ture = 1; unsigned char q=0; unsigned int a = 0; uint16_t count,w; uint32_t add=0; uint32_t ad=0; SPI_FLASH_Init(); VS1003_Init(); flash_ID = SPI_Flash_ReadID(); //SPI_Flash_Write((u8*)MP3_DATA,1,51200); while(ture) { do { w = VS1003_ReadReg(SPI_HDAT1); } while (w < 256 || w >= 896); for( br = 0; br < 512; br++ ) { SEC_CAL = VS1003_ReadReg(SPI_HDAT0); led[x*2] = (unsigned char)( SEC_CAL >> 8 ); led[x*2+1] = (unsigned char)( SEC_CAL & 0xff ); x=x+1; } SPI_Flash_Write(led,add*1024+1,1024); add = add + 1; a = a + 1; if(a==50) ture = 0; x = 0; } add = 0; ad = 0; VS1003_Reset(); VS1003_SoftReset(); while(1) { MP3_DCS(0); //--------------------------------------------------------------------------------- for(count=0;count<80;count++) { while( MP3_DREQ ==0 ); VS1003_SPI_ReadWriteByte(RIFF_header[count]); } ///-------------------------------------------??·?????????--------------------------------------------- for(count=0;count<51200;count++) { while( MP3_DREQ ==0 ); VS1003_SPI_ReadWriteByte(led2[ad]); ad = ad + 1; if(ad == 2047) { ad = 0; SPI_Flash_Read(led2,add*2048+1,2048); add = add + 1; } } ad = 0; add = 0; q = 0; MP3_DCS(1); MP3_CCS(1); } }[/mw_shl_code]

/* RECORD,NEWMODE,RESET */ while( VS1003_ReadReg(SPI_MODE) != 0x1800 ) { VS1003_WriteReg(SPI_MODE,0x1804); delay_ms(2); /* ????????1.35ms */ } }[/mw_shl_code]
这些就是关键的函数了,请原子哥帮忙看下,RIFF头文件我也加了。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-4-21 00:15:52 | 显示全部楼层
参考下我们的VS1053例程吧。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2015-11-6
在线时间
0 小时
发表于 2015-11-6 21:50:21 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
我遇到了跟他一样的问题,想问问怎么解决的,谢谢
回复

使用道具 举报

9

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
106
注册时间
2015-6-10
在线时间
0 小时
发表于 2015-11-23 09:20:39 | 显示全部楼层
VS1003_WriteReg(SPI_AICTRL0,0x0012);这个是12分频?
回复

使用道具 举报

10

主题

70

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
272
金钱
272
注册时间
2016-7-13
在线时间
41 小时
发表于 2018-1-3 15:31:10 | 显示全部楼层
正点原子 发表于 2015-4-21 00:15
参考下我们的VS1053例程吧。

用的是录音机实验的例程,耳机能听到声音,可是为什么电脑上读出的是0KB
回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10579
金钱
10579
注册时间
2017-2-18
在线时间
1916 小时
发表于 2018-1-3 18:08:29 | 显示全部楼层
yjh 发表于 2018-1-3 15:31
用的是录音机实验的例程,耳机能听到声音,可是为什么电脑上读出的是0KB

意思是板子能读取录音文件,能播放,但是电脑上识别为0KB?是的话,换SD卡试试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-23 03:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表