用原子哥的SDIO驱动和移植的文件系统fatfs在读取TF文件时老是错误//读扇区//pdrv:磁盘编号0~9
//*buff:数据接收缓冲首地址
//sector:扇区地址
//count:需要读取的扇区数
DRESULT disk_read (
BYTE pdrv, /* Physical drive nmuber to identify the drive */
BYTE *buff, /* Data buffer to store read data */
DWORD sector, /* Sector address in LBA */
UINT count /* Number of sectors to read */
)
{
u8 res=0;
if (!count)return RES_PARERR;//count不能等于0,否则返回参数错误
switch(pdrv)
{
case SD_CARD://SD卡
res=SD_ReadDisk(buff,sector,count);
while(res)//读出错
{
SD_Init(); //重新初始化SD卡
res=SD_ReadDisk(buff,sector,count);
//printf("sd rd error:%d
",res);
}
break;
.
.
.
.
}
}
部分TF卡会一直在这个while(res)里面。再重新初始化TF卡是poweron函数一直返回SD_INVALID_VOLTRANGE; 但是在上电的时候初始化TF卡是正常的,在程序运行时热插拔也能正常识别和正确初始化
就是在加上文件系统后读写文件时部分卡就不能正常工作了,这些TF卡都能在电脑上正常读写。
一周热门 更多>