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

获取 磁盘容量函数 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,看看是哪儿发生了错误。

我估计看是不是判断盘符号 那个地方,我貌似之前找到过判断盘符号的位置,但是后来又给忘记了在哪个地方了
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版