一 前记
文件系统读取剩余内存空间并显示是一个常用的功能。这个函数是:
FRESULT f_getfree (const TCHAR* path, DWORD* nclst, FATFS** fatfs); /* Get number of free clusters on the drive */
第一个入参是文件路径,第二个参数剩余空间的指针,第三个参数是文件名。
二 实例解析
下面看一下实例解析:
void get_fafts_info(void) { FATFS *pfs = &SDFatFS; DWORD fre_clust, fre_size, tot_size; uint8_t result = f_getfree(simulate_filename, &fre_clust, &pfs ); if( result == FR_OK ) { // 总容量计算方法 // pfs->csize 该参数代表一个簇占用几个 SD卡物理扇区,每个扇区512字节 // pfs->n_fatent 簇的数量+2 // 总容量 = 总簇数*一个簇占用大小 // 剩余容量 = 剩余簇数*一个簇占用大小 tot_size = (pfs->n_fatent - 2) * pfs->csize/2; // 总容量 单位Kbyte fre_size = fre_clust * pfs->csize/2; // 可用容量 单位Kbyte mprintf("f_getfree sd tot_sect: %lu Mbytes\r\n", tot_size/1024 ); mprintf("f_getfree sd fre_sect: %lu Mbytes\r\n", fre_size/1024 ); } else { mprintf("f_getfree err : %d \r\n", result); } }
三 总结
这个代码是验证ok了。后面继续深入的分析其他功能。
标签:剩余,getfree,读取,fre,文件系统,tot,pfs,fatfs,size From: https://www.cnblogs.com/dylancao/p/18131916