STM32F429通过SDIO读取TF卡的数据部分卡老是错误。

2019-07-20 07:37发布

用原子哥的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卡都能在电脑上正常读写。

0条回答

一周热门 更多>