OpenEdv-开源电子网

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

解析文件名出了个小问题

[复制链接]

44

主题

260

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
253
金钱
253
注册时间
2012-3-8
在线时间
29 小时
发表于 2012-4-15 11:11:36 | 显示全部楼层 |阅读模式
我的程序是搜索根目录,然后显示出MP3文件,程序好像没有问题,显示15首歌,只有一首名称对不上,不知道什么原因
TFT显示的内容如下:
      找到的歌曲文件
胡歌 - 逍遥叹.mp3
侧田 - 好人.mp3
胡歌 - 六月的雨.mp3
陈宇凡 - 我不是英雄.mp3
刘德华 - 十七岁.mp3
方力申 - 认命.mp3
篮球部落 - 左脸.mp3
刘德华 - 练习.mp3
爱.mp3                           //就这首歌出了问题
。。。
。。。
。。。
(后面的都没问题)

我的代码如下:
void music()
{
 u16 d,ii,i=0,aa=0,jj=0;  
 u8 cc[26];
 u8 dd[12];
 Show_Str(63,0,"找到的音乐文件",16,1);
 while(1)
 {
  SD_ReadSingleBlock(FirstBlock*512+i*512,buffer,512);
  i++;
  for(d=0;d<512;d=d+32)
  {
   if(((buffer[0+d]!=0x2E)&&(buffer[0+d]!=0x00)&&(buffer[0+d]!=0xe5))||((buffer[0+d]==0x2E)&&(buffer[1+d]==0x2E)))
   {    
    if(buffer[11+d] == 0x0f)//找到一个长文件名
    { 
     for(ii=0;ii<10;ii++)    //提取前5个字符
     {
      cc[ii]=buffer[d+ii+1];
     }
     for(ii=0;ii<12;ii++)    //提取第6-12个字符
     {
      cc[ii+10]=buffer[d+ii+14]; 
     }
     for(ii=0;ii<4;ii++)     //提取12-16个字符
     {
      cc[ii+22]=buffer[d+ii+28];
     }
     UniToGB(cc);
     for(ii=0;ii<26;ii++)    //提取长文件名中的mp3后缀,是mp3则显示出来
     {
      if(cc[ii]=='m')
      {
       if(cc[ii+1]=='p')
       {
        if(cc[ii+2]=='3')
        {
         Show_Str(0,16+jj,cc,16,1); 
         jj+=16;       //换行
         d+=32;       //忽略短文件名
         aa++;       //歌曲记数,每页显示15首
         if(aa==15)goto Break;   //如果达到15首,退出循环
         goto asd;      //退出检测
        }  
       }
      } 
     }
asd: 
    }
   }    
  }
 }
Break:   
}

大家帮我看看,为什么那首哥会显示出错,那首歌的名称应该是:方力申、邓丽欣 - 我的最爱
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-4-15 12:53:48 | 显示全部楼层
这个只能你自己慢慢找了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

44

主题

260

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
253
金钱
253
注册时间
2012-3-8
在线时间
29 小时
 楼主| 发表于 2012-4-15 13:12:29 | 显示全部楼层
我加入触屏点歌后,其他歌曲都能找到地址并且播放,就这首歌曲不行,莫非这个是无效的,怎么排除掉这个文件?这样的文件和其他文件比,有什么特殊之处吗?我的意思就是说,怎么检测到这个文件是无效的
回复 支持 反对

使用道具 举报

36

主题

1105

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2196
金钱
2196
注册时间
2012-2-8
在线时间
35 小时
发表于 2012-4-15 13:17:54 | 显示全部楼层
电脑上能播吗?
https://github.com/roxma
回复 支持 反对

使用道具 举报

44

主题

260

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
253
金钱
253
注册时间
2012-3-8
在线时间
29 小时
 楼主| 发表于 2012-4-15 13:27:17 | 显示全部楼层
电脑上是能播的,我是觉得,检测出了错误,把以前遗留的无效目录项也检测进去了
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-25 13:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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