不用SD卡,应该如何实现向VS1053模块中传输MP3音频文件那?

2019-08-20 18:37发布

现在面临的问题想要不用SD卡,实现向VS1053模块中传输MP3音频文件,让vs1053播放音乐。用的是战舰V3。
自己写的代码如下:
void play_song(void)
{
                 u8 fmp3[4096];
                u8 data[32];
    u16 br;
                u8 res,rval;          
                u16 i=0;
                u16 key;
                VS_HD_Reset();
                VS_Soft_Reset();
       
                VS_Restart_Play();                                          //重启播放
                VS_Set_All();                                                //设置音量等信息                          
                VS_Reset_DecodeTime();
       
                VS_SPI_SpeedHigh();        //高速       
                for(key=0;key<73;key++)//文件存储在FLASH中,读73次每次读4096字节数据
                        {
                                W25QXX_Read(fmp3,0x000000+key*4096,4096);
                                i=0;
                //                for(br=0;br<256;br++)
                //                        {
                //                                printf("%x",fmp3[br]);
                //                        }
                                       
                                do
                                {
                                        strncpy((char *)data,(const char *)fmp3+i*32,32);//发送32个字节数据
                                        for(br=0;br<32;br++)
                                                {
                                                        printf("%x",fmp3[br]);
                                                }
                                        if(VS_Send_MusicData(fmp3)==0)//给VS10XX发送音频数据
                                                {
                                                                        i++;
                                                }
                                }
                                while(i<128);       
                        }               
}

没有达到播放音乐的效果,请大家一起帮忙看一下!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
正点原子
1楼-- · 2019-08-20 23:52
 精彩回答 2  元偷偷看……
15937417823
2楼-- · 2019-08-21 04:30
请大家一起帮忙看一下!十分感谢!
正点原子
3楼-- · 2019-08-21 09:44
先确定你存储的数据是否正确。另外,不要在函数里面,定义这么大的数组,死翘翘的!!堆栈不够你折腾。用全局数组,或者内存管理。
15937417823
4楼-- · 2019-08-21 13:56
正点原子 发表于 2017-4-19 19:29
先确定你存储的数据是否正确。另外,不要在函数里面,定义这么大的数组,死翘翘的!!堆栈不够你折腾。用全 ...

你好,原子哥。我是直接下载的MP3文件,可以正常播放的,然后直接通过串口传输给FLASH,传输大小跟MP3文件大小一致;然后我从FLASH里读了256字节,再用VC打开MP3文件,两者是一样的。  数组这个我定义小一点,循环次数增加应该也可以的把?
15937417823
5楼-- · 2019-08-21 15:19
正点原子 发表于 2017-4-21 01:48
256字节不能说明问题,全部倒推过来。全部发送回来。
再看看。
256字节发送过去都不会发声的

原子哥说的有道理

一周热门 更多>