Fork me on GitHub

随笔 - 997  文章 - 5  评论 - 181  阅读 - 300万 

一 前记

 文件系统读取剩余内存空间并显示是一个常用的功能。这个函数是:

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了。后面继续深入的分析其他功能。

 

posted on   虚生  阅读(271)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
历史上的今天:
2022-04-12 可穿戴智能手环解决方案之BLE的ADV广播协议解读
2022-04-12 基于Apollo3 Blue MCU芯片的可穿戴产品解决方案开发之健康手环源码解析
2022-04-12 ARM的无线ble IP Cordio-B50 stack and profiles简析
2018-04-12 Linux下用ifconfig命令设置IP、掩码、网关
点击右上角即可分享
微信分享提示