OpenEdv-开源电子网

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

求救 原子哥 移植 mp3_play();到F4

[复制链接]

22

主题

62

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
金钱
228
注册时间
2013-5-1
在线时间
27 小时
发表于 2016-9-14 10:40:04 | 显示全部楼层 |阅读模式
10金钱
平台 Keil4.7
CPU : stm32f407vgt6

硬件:     晶振用了16M   我已经改了PLL_M了 正常运行LED  1s闪烁的
             有个led、sd卡按照SDIO接。。有VS1053但是下面代码还没涉及它就以及挂了。
            还有硬件上我也没外部FLASH

我改了一下 ff.h
#define _VOLUMES        1         //支持3个磁盘

由于F4没有VS1053。。我就尝试直接在 F4的音乐播放 加入 F1 战舰V2.1板子的         mp3_play();
就把F4的音乐播放全部注释
然后主函数 加入VS_Init();
但是问题来了   它卡死了  我才发现他是死在了 1.png

后来就把主函数  注释了 VS_Init();    发现死因是  这里:
        while(f_opendir(&mp3dir,"0:/MUSIC"))//打开图片文件夹
        {            
                Show_Str(60,190,240,16,"MUSIC文件夹错误!",16,0);
                delay_ms(200);                                  
                LCD_Fill(60,190,240,206,WHITE);//清除显示             
                delay_ms(200);                                  
        }                                                                           
        totmp3num=mp3_get_tnum("0:/MUSIC"); //得到总有效文件数
          while(totmp3num==NULL)//音乐文件总数为0               
        {            
                Show_Str(60,190,240,16,"没有音乐文件!",16,0);
                delay_ms(200);                                  
                LCD_Fill(60,190,240,146,WHITE);//清除显示             
                delay_ms(200);                                  
        }


红色部分 。。。一直追踪发现。。。
u16 mp3_get_tnum(u8 *path)
{          
        u8 res;
        u16 rval=0;
        DIR tdir;                         //临时目录
        FILINFO tfileinfo;        //临时文件信息               
        u8 *fn;                                                                                  
    res=f_opendir(&tdir,(const TCHAR*)path); //打开目录
          tfileinfo.lfsize=_MAX_LFN*2+1;                                                //长文件名最大长度
        tfileinfo.lfname=mymalloc(SRAMIN,tfileinfo.lfsize);        //为长文件缓存区分配内存
        if(res==FR_OK&&tfileinfo.lfname!=NULL)
        {
                while(1)//查询总的有效文件数
                {
                res=f_readdir(&tdir,&tfileinfo);                       //读取目录下的一个文件









后来发现死了这里  - -




原子哥能帮我看看是什么问题么 ?搞不懂 主函数我都没弄过SPI1。。竟然到了文件系统这里 竟然卡死了在这里SPI1_ReadWriteByte。。。
整个Project: F4实验43 音乐播放器实验移植VS1053发现文件系统方面出了问题.rar (1.23 MB, 下载次数: 128)

最佳答案

查看完整内容[请看2#楼]

很复杂的过程,估计别人很难帮得上, 一步步来吧。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11547
金钱
11547
注册时间
2014-4-1
在线时间
1316 小时
发表于 2016-9-14 10:40:05 | 显示全部楼层

很复杂的过程,估计别人很难帮得上,
一步步来吧。

回复

使用道具 举报

15

主题

77

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2012-7-5
在线时间
6 小时
发表于 2019-1-20 00:06:48 | 显示全部楼层
请问问题怎么解决的呀?也遇到类似问题。。。。
相信自己,我能行
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-12 06:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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