目前在测试STM32F105RCT6操作U盘的程序,发现U盘大于4G就操作不对,是不是要在官方例程上修改程序使之支持4G以上的U盘。读取容量的时候发现也有问题。
FATFS *fs;
DWORD fre_clust;
DWORD fre_sect=0, tot_sect=0;
/* Get volume information and free clusters of drive */
if(disk == 1)// SD¿¨
res = f_getfree("1:", &fre_clust, &fs);
else
res = f_getfree("0:", &fre_clust, &fs);
if (res != FR_OK)
{
return res;
}
tot_sect=(fs->n_fatent-2)*fs->csize; //??????
fre_sect=fre_clust*fs->csize; //???????
*total=tot_sect>>1; //???KB
*free=fre_sect>>1; //???KB
/* Return OK */
return FR_OK;
我这样读取的4G U盘的容量只有1G,是不是哪里不对?万能的大咖 |