你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

获取 磁盘容量函数 uint8_t myf_getfree(char *drv, uint32_t *total, uin?

[复制链接]
hpdell 提问时间:2015-12-8 14:50 /
/**
  *****************************************************************************
  * @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  ??

望高人指点指点 ???


















收藏 评论10 发布时间:2015-12-8 14:50

举报

10个回答
moyanming2013 回答时间:2015-12-9 11:12:47
帮顶。。。
hpdell 回答时间:2015-12-9 13:07:09

感谢感谢啊,不知道你们有没有遇到过类似的问题啊 ??

还有,你们使用的是哪个版本的 fatfs ?
废鱼 回答时间:2015-12-9 16:00:10
一般挂一个磁盘,没有挂过多个磁盘。加载磁盘了吗?
悄然林静 回答时间:2015-12-9 17:52:23
没看懂,但是也要帮顶一下~~
hpdell 回答时间:2015-12-10 09:11:34
安 发表于 2015-12-9 16:00
一般挂一个磁盘,没有挂过多个磁盘。加载磁盘了吗?

加载了啊,
废鱼 回答时间:2015-12-10 09:17:01
你挂了多少个磁盘?
hpdell 回答时间:2015-12-10 10:52:13
安 发表于 2015-12-10 09:17
你挂了多少个磁盘?

一共3个磁盘,除磁盘1、2 不能够获取容量信息外,读写完全正常。
废鱼 回答时间:2015-12-10 11:05:23
这样只能逐步仿真f_getfree,看看是哪儿发生了错误。
hpdell 回答时间:2015-12-10 14:14:04
安 发表于 2015-12-10 11:05
这样只能逐步仿真f_getfree,看看是哪儿发生了错误。

我估计看是不是判断盘符号 那个地方,我貌似之前找到过判断盘符号的位置,但是后来又给忘记了在哪个地方了
废鱼 回答时间:2015-12-10 15:13:35
还是一步一步仿真看看,这样好解决。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版