平台 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();
但是问题来了 它卡死了 我才发现他是死在了
后来就把主函数 注释了 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);
}
红 {MOD}部分 。。。一直追踪发现。。。
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)
2016-9-14 10:39 上传
点击文件名下载附件
一周热门 更多>