OpenEdv-开源电子网

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

VS1053B解码MP3问题

[复制链接]

2

主题

7

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2016-4-3
在线时间
9 小时
发表于 2016-4-3 16:47:19 | 显示全部楼层 |阅读模式
2金钱
先说下问题:
我通过读取SD卡中的MP3文件发送给VS1053却听不到任何声音(正弦测试已经通过)
希望大家能够看看我的代码哪里出现了问题
/*
*******************************************************************************
*                      MP3_PlaySong()
*功  能: 播放一首歌曲
*参  数: _pName :路径名称
*         _ucType:文件类型
*返回值: 无
*说  明: 无
*******************************************************************************
*/
uint8_t MP3_PlaySong(uint8_t *_pName,uint8_t _ucType)
{
        FRESULT res;
        FATFS   fs;
        FIL     fil;
        UINT    bw;
       
        KEY_FIFO_T _tKey;
       
        uint8_t j;
        uint8_t buf[1024];  /*存放数据*/
        uint16_t cnt;
       
        uint8_t playflag=0;
        uint8_t playsize=0;
       
        VS1053B_SoftRst();
       
        VS1053B_SetSpeed(1); /*设置成低速模式*/
       
        while(!VS_DRQ_STATUS());
       
  if(_ucType == FATFS_FILEISFLAC) /*如果为flac模式加载插件*/
  {
          VS1053B_WriteReg(VS1053B_CLOCKF,0xf800); /*设置时钟频率*/
                while(!VS_DRQ_STATUS());                 /*等待写完成*/
                VS1053B_FLAC_WritePlugin();
        }               
        else
        {
          VS1053B_WriteReg(VS1053B_CLOCKF,0xb800);
                while(!VS_DRQ_STATUS());
                VS1053B_FLAC_WriteNull();
        }
       
        VS1053B_SetSpeed(2); /*设置为高速模式*/
        f_mount(0,&fs);      /*挂载SD卡*/
        res = f_open(&fil,(const TCHAR *)_pName,FA_READ);
       
        if(res) {} /*SD卡打开失败*/
                                   
  while(1)
        {       
                f_lseek(&fil,playsize*1024);
                res = f_read(&fil,buf,1024,&bw);/*读取1024个字节放入缓冲区*/
                if(res == RES_OK) /*打开成功*/
                {
                  cnt = 0;
                        while(cnt < bw)     /*Sd卡读取一个扇区512字节*/
                        {
                                VS_DCS_0();       /*选中数据端口*/
                          if((VS_DRQ_STATUS()!=0)&&(playflag==0))
                                {
                                  for(j=0;j<32;j++)
                                          VS1053B_ReadWriteByte(buf[cnt+j]);  /*写入32字节的数据*/
                                        cnt += 32;     
                                        LED_TOGGLE();
                                }
                                VS_DCS_1();
                        }
                        playsize += 1;
                }
                if(res||bw == 0) break;
        }               
        while(!VS_DRQ_STATUS());
        VS1053B_SetSpeed(1);
        MP3_MusicCancelPlay();
        f_close(&fil);
        f_mount(0,NULL); /*卸载文件系统*/
       
        return MUSIC_END; /*播放结束*/
}

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

使用道具 举报

16

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
301
金钱
301
注册时间
2015-12-15
在线时间
72 小时
发表于 2016-4-3 19:34:17 | 显示全部楼层
这个太难了,高手啊!!!
回复

使用道具 举报

16

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
301
金钱
301
注册时间
2015-12-15
在线时间
72 小时
发表于 2016-4-3 19:35:22 | 显示全部楼层
呼叫正点原子,请原子个解答
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165462
金钱
165462
注册时间
2010-12-1
在线时间
2114 小时
发表于 2016-4-3 21:13:30 | 显示全部楼层
你这个局部变量这么多,没死机吧?仿真一下看看。
回复

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2016-4-3
在线时间
9 小时
 楼主| 发表于 2016-4-3 21:37:41 | 显示全部楼层
正点原子 发表于 2016-4-3 21:13
你这个局部变量这么多,没死机吧?仿真一下看看。

没有死机,就是一阵乱叫
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165462
金钱
165462
注册时间
2010-12-1
在线时间
2114 小时
发表于 2016-4-3 22:20:47 | 显示全部楼层
Jonelec 发表于 2016-4-3 21:37
没有死机,就是一阵乱叫

看看DQ信号正常不
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2016-4-3
在线时间
9 小时
 楼主| 发表于 2016-4-4 07:09:41 | 显示全部楼层

嗯嗯,我在看看
回复

使用道具 举报

20

主题

297

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1830
金钱
1830
注册时间
2013-7-29
在线时间
276 小时
发表于 2016-6-21 15:53:02 | 显示全部楼层
我昨天调试时也发现是DQ脚信号没有处理好。
回复

使用道具 举报

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2017-1-1
在线时间
28 小时
发表于 2017-1-22 21:34:46 来自手机 | 显示全部楼层
楼主问题解决了吗
回复

使用道具 举报

0

主题

8

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2017-5-22
在线时间
2 小时
发表于 2017-7-31 16:14:20 | 显示全部楼层
楼主问题解决了吗
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-4-19 22:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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