移植正点原子SDIO+FATFS程序。开机后前五次内创建txt文件都能成功,第六次开始创建txt文件失败,SDIO底层报SD_DATA_TIMEOUT超时

2019-07-20 19:09发布

本帖最后由 huifeidetuzi 于 2016-10-31 16:19 编辑

移植正点原子SDIO+FATFS程序,开机前五次内创建、读写文件无错误,从第六次开始,创建文件的时候SDIO底层报SD_DATA_TIMEOUT超时错误。程序如下:@八度空间 @八度空间 SD_Error SD_WriteBlock(u8 *buf,long long addr,  u16 blksize)//SD卡写一个块
{
.....
.....
....
while(((DMA2->LISR&(1<<27))==RESET)&&timeout)timeout--;
                if(timeout==0)
                {
                          SD_Init();                                                
                        return SD_DATA_TIMEOUT;                        
                 }
//将以下程序屏蔽,创建文件不会报错,还没测试,写卡会不会丢数。
//                timeout=SDIO_DATATIMEOUT;
//                while((TransferEnd==0)&&(TransferError==SD_OK)&&timeout)timeout--;
//                 if(timeout==0)return SD_DATA_TIMEOUT;                        
//                if(TransferError!=SD_OK)return TransferError;
         }  
         SDIO_ClearFlag(SDIO_STATIC_FLAGS);//&#199;&#229;3y&#203;ùóD±ê&#188;&#199;
         errorstatus=IsCardProgramming(&cardstate);
         while((errorstatus==SD_OK)&&((cardstate==SD_CARD_PROGRAMMING)||(cardstate==SD_CARD_RECEIVING)))
        {
                errorstatus=IsCardProgramming(&cardstate);
        }   

}
将以上程序屏蔽后,创建文件不会出错,但不知道写卡是否丢数。
请问那个大神遇到类似情况。如何解决的?

        




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。