|
|
DRESULT MMC_read(BYTE lun, BYTE *pBuff, DWORD dwSector, DWORD dwCount)
{
if(Wait_MMCCARD_Ready() != MMC_OK)
{
return RES_ERROR;
}
//读取数据块
Result = BSP_MMC_ReadBlocks((DWORD *)pBuff, (DWORD)(dwSector), dwCount, MMC_TIMEOUT);
if(Result == RES_OK)
{
//等待传输完成
Result = Wait_MMCCARD_Ready();
}
// //等待传输完成
// if(Result == RES_OK)
// {
// Result = HAL_MMC_CheckReadOperation(&hmmc, Timeout);
// }
#endif
return Result;
}
快速操作进入文件夹会卡在BSP_MMC_ReadBlocks这个函数里返回超时,并且后续问价夹都无法读取,但是操作慢一点就不会出现这个问题
最后定位到是BSP_MMC_ReadBlocks函数的SDMMC_FLAG_RXFIFOHF这个标志不会置位,无法读取后续数据
if (__HAL_MMC_GET_FLAG(hmmc, SDMMC_FLAG_RXFIFOHF) && (dataremaining >= SDMMC_FIFO_SIZE))
请大神指点一下
|
|