STM32F103的SDIO读取FATS MP3文件出错,错误代码0x03

2019-10-15 03:12发布

先简单介绍一下系统:这个项目考虑到版权问题,用的是FreeRtos系统,IAR编译环境,其中需要用到MP3,在本项目种创建了两个任务,一个任务用来处理通讯协议和一些界面显示,优先级最高,另外一个任务是用来播放MP3文件的,任务优先级低。
目前出现的问题:在播放MP3的时候,有时候会停顿一下,然后又恢复过来继续播放,又时候恢复不过来就一直死机
在调试状态下发现:当出现停顿的时候,其实是读SD卡出现错误0x03,  
while(res)//读出错
   {
    SD_Init(); //重新初始化SD卡
    res=SD_ReadDisk(buff,sector,count);
    //printf("sd rd error:%d ",res);
   }
如果重新初始化SD卡,并且读出SD卡没有错误,那么恢复正常,否则一直在上面这个while里面死循环,很尴尬。
在调试的过程种,我还发现了一个问你,但只有MP3 播放音乐任务在执行的时候,就不会出现以上问题,播放很长时间都是这样的,
一旦主任务和MP3播放任务同时存在的时候就会出现以上现象,因此我有把主任务里面执行的程序全屏蔽了,里面加阻塞延时,发现,加不同的延时时间,
读MP3文件的死机程度不同,这就叫人纳闷了,有时时间凑巧的话两三个小时都不出现死机的现象,这个问题真的很纠结,@正点原子
望各路大神指教,谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。