打印

实验39 FATFS实验中代码u32 mf_showfree(u8 *drv)表现为FLASH磁盘与实际磁盘总容量和可用空间不相符。

[复制链接]
311|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
实验39 FATFS实验中代码u32 mf_showfree(u8 *drv)问题,原代码输出正确问题,表现为FLASH磁盘与实际磁盘总容量和可用空间不相符。
原代码为:
u32 mf_showfree(u8 *drv)
{
        FATFS *fs1;
        u8 res;
    u32 fre_clust=0, fre_sect=0, tot_sect=0;
    //得到磁盘信息及空闲簇数量
    res = 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
                tot_sect*=fs1->ssize/512;
                fre_sect*=fs1->ssize/512;
#endif         
                if(tot_sect<20480)//总容量小于10M
                {
                    /* Print free space in unit of KB (assuming 512 bytes/sector) */
                    printf("
磁盘总容量:%d KB
"
                           "可用空间:%d KB
",
                           tot_sect>>1,fre_sect>>1
                }else
                {
                    /* Print free space in unit of KB (assuming 512 bytes/sector) */
                    printf("
磁盘总容量:%d MB
"   
                           "可用空间:%d MB
",         
                           tot_sect>>11,fre_sect>>11
                }
        }
        return fre_sect;
}

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

393

主题

393

帖子

0

粉丝