OpenEdv-开源电子网

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

?!!板子上跑 mp3程序时打开mp3路径无效怎么回事

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2016-5-9
在线时间
0 小时
发表于 2016-5-9 18:42:03 | 显示全部楼层 |阅读模式
在板子上跑 mp3程序时不能播放音乐,通过调试发现在下面这段程序中无法打开mp3文件,不知道这是怎么回事,求助啊!急!
u8 mp3_play_song(u8 *pname)
{         
        FIL* fmp3;
    u16 br;
        u8 res,rval;          
        u8 *databuf;                             
        u16 i=0;
        u8 key;              
                          
        rval=0;            
        fmp3=(FIL*)mymalloc(SRAMIN,sizeof(FIL));//申请内存
        databuf=(u8*)mymalloc(SRAMIN,4096);                //开辟4096字节的内存区域
        if(databuf==NULL||fmp3==NULL)rval=0XFF ;//内存申请失败.
        if(rval==0)
        {          
                  VS_Restart_Play();                                          //重启播放
                VS_Set_All();                                                //设置音量等信息                          
                VS_Reset_DecodeTime();                                        //复位解码时间           
                res=f_typetell(pname);                                          //得到文件后缀                                                                                             
                if(res==0x4c)//如果是flac,加载patch
                {       
                        VS_Load_Patch((u16*)vs1053b_patch,VS1053B_PATCHLEN);
                }                                                                                                                         
                res=f_open(fmp3,(const TCHAR*)pname,FA_READ);//打开文件
                LCD_ShowNUM(200,220,3,res,0,BLUE,WHITE);
                if(res==0)//打开成功.
                {
                        VS_SPI_SpeedHigh();        //高速                                                  
                        while(rval==0)
                        {
                                res=f_read(fmp3,databuf,4096,(UINT*)&br);//读出4096个字节  
                                i=0;
                                do//主播放循环
                            {         
                                        if(VS_Send_MusicData(databuf+i)==0)//给VS10XX发送音频数据
                                        {
                                                i+=32;
                                        }else   
                                        {
                                                key=KEY_Scan(0);
                                                switch(key)
                                                {
                                                        case KEY1_PRES:
                                                                rval=1;                //下一曲
                                                                break;
                                                        case KEY2_PRES:
                                                                rval=2;                //上一曲
                                                                break;
                                                       
                                                }
                                                mp3_msg_show(fmp3->fsize);//显示信息            
                                        }                        
                                }while(i<4096);//循环发送4096个字节
                                if(br!=4096||res!=0)
                                {
                                        rval=0;
                                        break;//读完了.                  
                                }                                                          
                        }
                        f_close(fmp3);
                }else rval=0XFF;//出现错误                     
        }                                                              
        myfree(SRAMIN,databuf);                                                 
        myfree(SRAMIN,fmp3);
        return rval;                                                 
}
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-10 15:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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