本帖最后由 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);//Çå3yËùóD±ê¼Ç
errorstatus=IsCardProgramming(&cardstate);
while((errorstatus==SD_OK)&&((cardstate==SD_CARD_PROGRAMMING)||(cardstate==SD_CARD_RECEIVING)))
{
errorstatus=IsCardProgramming(&cardstate);
}
}
将以上程序屏蔽后,创建文件不会出错,但不知道写卡是否丢数。
请问那个大神遇到类似情况。如何解决的?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>