/** ***************************************************************************** * @Name : 得到磁盘剩余容量 * * @Brief : none * * @Input : *drv: 磁盘编号("0:"/"1:"), 必须是根目录 * *total: 总容量 (单位KB) * *free: 剩余容量 (单位KB) * * @Output : none * * @Return : 0: OK * 其他: 出错 ***************************************************************************** **/ uint8_t myf_getfree(char *drv, uint32_t *total, uint32_t *free) { FATFS *fs1; __IO uint8_t res; uint32_t fre_clust=0, fre_sect=0, tot_sect=0; //得到磁盘信息及空闲簇数量 res = (uint32_t)f_getfree((const TCHAR*)&drv, (DWORD*)&fre_clust, &fs1); if(res == 0) { tot_sect = (fs1->n_fatent - 2) * fs1->csize; //得到总扇区数 fre_sect = fre_clust * fs1->csize; //得到空闲扇区数 #if _MAX_SS != 512 //扇区大小不是512字节,则转换为512字节 tot_sect *= fs1->ssize / 512; fre_sect *= fs1->ssize / 512; #endif *total = (tot_sect>>1); //单位为KB *free = (fre_sect>>1); //单位为KB } return res; } 在上面的获取磁盘容量信息里面,只能够获取到磁盘0,磁盘1、2、3等就获取不到了,是什么情况啊? 还有吧磁盘1、2、3 任意一个改成磁盘 0 都能够正常获取,再有就是磁盘 1、2、3 都能够正常读写的,可以排除磁盘1、2、3 底层及应用的问题了, 使用fatfs v0.11 版本。 . 估计是不是哪个地方限制了 磁盘 1、2、3 ?? 望高人指点指点 ??? |
感谢感谢啊,不知道你们有没有遇到过类似的问题啊 ??
还有,你们使用的是哪个版本的 fatfs ?
加载了啊,
一共3个磁盘,除磁盘1、2 不能够获取容量信息外,读写完全正常。
我估计看是不是判断盘符号 那个地方,我貌似之前找到过判断盘符号的位置,但是后来又给忘记了在哪个地方了