OpenEdv-开源电子网

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

大神们求助!FATFS文件系统,用的原子的程序,为什么显示卡的容量错误?!

[复制链接]

15

主题

72

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
348
金钱
348
注册时间
2015-5-2
在线时间
29 小时
发表于 2015-8-16 22:33:30 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]主函数[/mw_shl_code] [mw_shl_code=c,true]//******************************************************************************************************* int main(void) { u32 total,free; delay_init(); // 精确延时函数初始化 NVIC_Configuration(); // 中断初始化 uart_init(9600); // 串口初始化 usmart_init(72); // USMART初始化 exfuns_init(); // 为fatfs相关变量申请内存 mem_init(SRAMIN); // 初始化内存池 SD_Init(); printf("\r\n this is a fatfs test demo \r\n" ); exfuns_init(); // 为fatfs相关变量申请内存 f_mount(fs[0],"0:",1); // 挂载SD卡 f_mount(fs[1],"1:",1); //挂载FLASH. exf_getfree("0",&total,&free); // 得到SD卡的总容量和剩余容量 total = total>>10; // 转化为MB(/1024) printf("\r\n %d ", total); while(1); } /***************************END OF FILE*******************************/[/mw_shl_code]
exfuns.c
[mw_shl_code=c,true]// 得到磁盘剩余容量 // drv:磁盘编号("0:"/"1:") // total:总容量 (单位KB) // free:剩余容量 (单位KB) // 返回值:0,正常.其他,错误代码 u8 exf_getfree(u8 *drv, u32 *total, u32 *free) { FATFS *fs1; u8 res; u32 fre_clust = 0, fre_sect = 0, tot_sect = 0; // 得到磁盘信息及空闲簇数量 res = (u32)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; }[/mw_shl_code]
最后用串口打印输出的值为:


我明明用的是128MB的内存卡,读取却是524332MB,可这是为什么呢,想不明白。
而且我发现了一个巧合事情,524332/1024 = 512,可这又代表什么意思呢?

最佳答案

查看完整内容[请看2#楼]

回复【3楼】正点原子: --------------------------------- 刚刚又试了下,原子哥。怎么又都好了。。。。。。 用FAT默认格式化,读取是124MB 用FAT32格式化,读取是121MB 不插卡,读取是524332MB 我再琢磨琢磨
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

72

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
348
金钱
348
注册时间
2015-5-2
在线时间
29 小时
 楼主| 发表于 2015-8-16 22:33:31 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
刚刚又试了下,原子哥。怎么又都好了。。。。。。
用FAT默认格式化,读取是124MB
用FAT32格式化,读取是121MB
不插卡,读取是524332MB
我再琢磨琢磨
回复

使用道具 举报

15

主题

72

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
348
金钱
348
注册时间
2015-5-2
在线时间
29 小时
 楼主| 发表于 2015-8-16 22:39:19 | 显示全部楼层
原子哥!麻烦帮忙分析下吧,,,,,
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-8-16 22:40:30 | 显示全部楼层
有我们开发板么?
可以用我们开发板试试。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

15

主题

72

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
348
金钱
348
注册时间
2015-5-2
在线时间
29 小时
 楼主| 发表于 2015-8-16 23:05:18 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
原子哥,好吧,可以了   我格式化为FAT32格式,显示出来是121MB容量了。
为什么我格式化为FAT默认格式就不行了呢?
还有就是,不插卡,显示是524332MB
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-18 09:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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