OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4680|回复: 8

原子大哥这个地方是不是错了。

[复制链接]

72

主题

251

帖子

0

精华

高级会员

Rank: 4

积分
597
金钱
597
注册时间
2012-3-29
在线时间
7 小时
发表于 2013-10-18 11:03:40 | 显示全部楼层 |阅读模式

FATFS实验中显示SD卡的总容量和剩余容量。

 LCD_ShowString(60,170,200,16,16,"SD Total Size:     MB"); 
 LCD_ShowString(60,190,200,16,16,"SD  Free Size:     MB");     
  LCD_ShowNum(172,170,total>>10,5,16);     //显示SD卡总容量 MB
  LCD_ShowNum(172,190,free>>10,5,16);      //显示SD卡剩余容量 MB

因为定义每个扇区是512字节

总扇区数/2就是KB

总扇区数/(2×1024)就是MB

这个》10,应该为》11.

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-18 11:33:21 | 显示全部楼层
1,你可以插卡,测试下,看看是我的准确,还是你说的有误,所谓口说无凭,你测试不准,再来找我,如果准确,请找自己的问题。
2,看代码,你知道我的total和free,返回值单位是什么么?不知道,请看一下是怎么来的,切忌断章取义。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-18 11:34:22 | 显示全部楼层
我不是一个随便的人,所以,请不要随便质疑我的代码,真凭实据,当然欢迎指出我的错误。如果主观臆断,还请多从自身找问题。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

72

主题

251

帖子

0

精华

高级会员

Rank: 4

积分
597
金钱
597
注册时间
2012-3-29
在线时间
7 小时
 楼主| 发表于 2013-10-18 11:59:34 | 显示全部楼层
最近原子哥上火了。
有必要么
只是疑惑而已,没批评你什么啊
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-18 13:11:48 | 显示全部楼层
是有点,所以请提高下提问的质量。
尤其是兄台,在论坛发帖也不少了,问这种低级的问题,未免有点....

实在是每天看论坛,不假思索提问的人太多了,老会员应该以身作则,提问应该提高问题的质量。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-18 13:18:03 | 显示全部楼层
其实我只想问问提问者:
1,有没有自己动手,实际测试过这个问题的真实性?是否真存在?
2,针对这个问题,自己找过答案没有?
3,针对你的问题,自己有没有比较靠谱的猜测?

如果以上三点,提问者都做了,我很愿意回答你的问题,当然不保证都能给你找到答案,但至少,我们都认真对待过...


楼主你这个问题,我做了什么工作?
1,找到战舰板的fatfs实验。
2,找到你这段代码。
3,看了下total和free的又来,跟踪到exf_getfree函数。
4,看到注释:
//得到磁盘剩余容量
//drv:磁盘编号("0:"/"1:")
//total:总容量  (单位KB)
//free:剩余容量  (单位KB)
//返回值:0,正常.其他,错误代码

剩下的,楼主自己就知道答案了。

但是既然你提这个问题,显然你没有去做我以上4个步骤,至少,没做全。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-18 13:19:01 | 显示全部楼层
所谓事出有因,但是为什么就没多少人去找这个"因"呢,总喜欢找"事"。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

72

主题

251

帖子

0

精华

高级会员

Rank: 4

积分
597
金钱
597
注册时间
2012-3-29
在线时间
7 小时
 楼主| 发表于 2013-10-18 13:37:17 | 显示全部楼层
回复【7楼】正点原子:

---------------------------------

u8 exf_getfree(u8 *drv,u32 *total,u32 *free)
{
FATFS *fs1;
u8 res;
    DWORD fre_clust=0, fre_sect=0, tot_sect=0;
    //得到磁盘信息及空闲簇数量
    res = f_getfree((const TCHAR*)drv, &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;
}
这个单位是KB 那你这个》10是对的。
水平有限,提个疑惑就这样,都不敢说话了。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-18 14:04:52 | 显示全部楼层
回复【8楼】grant:
---------------------------------
多提高下自己的水平。
其实你这个问题,完全不是水平的问题,是有没有看注释的问题....
只要阅读中文无碍,应该不存在读不懂的问题了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-11 03:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表