OpenEdv-开源电子网

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

sd卡读写

[复制链接]

33

主题

82

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
237
金钱
237
注册时间
2012-9-8
在线时间
1 小时
发表于 2012-11-3 08:49:48 | 显示全部楼层 |阅读模式
我向sd卡内写入数据,读数据都没问题,可是为什么读不到时间和大小属性,我在电脑上新建的文件可以读出时间和大小,为啥啊?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

27

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2012-8-11
在线时间
0 小时
发表于 2012-11-3 09:42:19 | 显示全部楼层
看一下原子给的参考资料吧,在里面的FAT表里
回复 支持 反对

使用道具 举报

33

主题

82

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
237
金钱
237
注册时间
2012-9-8
在线时间
1 小时
 楼主| 发表于 2012-11-3 10:18:07 | 显示全部楼层
兄弟,我看是看了,但是我还是不知道怎么才能获取到时间或者大小,能不能直接点告诉我用什么函数才能读到时间和文件大小的属性
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2012-11-3 10:53:39 | 显示全部楼层
回复【3楼】yhz:
---------------------------------
是不是用的fatfs?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

33

主题

82

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
237
金钱
237
注册时间
2012-9-8
在线时间
1 小时
 楼主| 发表于 2012-11-3 10:57:19 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
是的,创建文件是这条语句执行的
res = f_open(&file,File_Name, FA_OPEN_ALWAYS | FA_WRITE);  
是不是得用到f_utime函数才能给文件赋予时间啊,大小怎么也读不到呢
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2012-11-3 15:33:47 | 显示全部楼层
你要实现这个函数:
//获得时间
//User defined function to give a current time to fatfs module      */
//31-25: Year(0-127 org.1980), 24-21: Month(1-12), 20-16: Day(1-31) */                                                                                                                                                                                                                                          
//15-11: Hour(0-23), 10-5: Minute(0-59), 4-0: Second(0-29 *2) */                                                                                                                                                                                                                                                
DWORD get_fattime (void)
{  
    u32 ttime;
u32 date=0;
    
    RTC_Get(); //得到当前时间
    ttime=calendar.w_year-1980; //得到偏移后的年份
  date|=ttime<<25;
    ttime=calendar.w_month; //得到月份
  date|=ttime<<21;
ttime=calendar.w_date; //得到日期
  date|=ttime<<16;
ttime=calendar.hour; //得到时钟
  date|=ttime<<11;
ttime=calendar.min; //得到分钟
  date|=ttime<<5;
  date|=calendar.min>>1;   //得到秒钟         
    return date;   
}
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

33

主题

82

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
237
金钱
237
注册时间
2012-9-8
在线时间
1 小时
 楼主| 发表于 2012-11-5 15:14:07 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
原子兄,这个时间我可以获得,就是不知道怎么用f_utime函数才能修改时间,我用了f_utime这个函数,但是时间还是没有写到文件属性中
回复 支持 反对

使用道具 举报

33

主题

82

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
237
金钱
237
注册时间
2012-9-8
在线时间
1 小时
 楼主| 发表于 2012-11-5 15:44:55 | 显示全部楼层
我的程序是:
void Write_File(void)
{
  FILINFO fno;
        FIL file;
        fno.fdate = (WORD)(((2012 - 1980) * 512U) | 11 * 32U | 5);
        disk_initialize(0);
        res = f_mount(0, &fs);
        res = f_open(&file,File_Name, FA_OPEN_ALWAYS | FA_WRITE);  //创建一个新的文件"picture.txt" FA_CREATE_ALWAYS
f_printf (&file, Job_Number);
        f_chmod(Job_Number, AM_ARC, AM_ARC);                       //存档文件
        f_utime(File_Name, &fno);
f_close(&file); 
        f_mount(0, NULL);  
}
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2012-11-5 16:57:16 | 显示全部楼层
回复【7楼】yhz:
---------------------------------
这个函数我也没用过哦,你再研究下吧。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

33

主题

82

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
237
金钱
237
注册时间
2012-9-8
在线时间
1 小时
 楼主| 发表于 2012-11-6 07:37:33 | 显示全部楼层
回复【9楼】正点原子:
---------------------------------
那我不用这个函数,可以有文件的创建时间吗?具体怎么弄啊
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2012-11-6 11:30:52 | 显示全部楼层
回复【10楼】yhz:
---------------------------------
文件创建时间,fatfs是通过get_fattime获取的,前面已经说过了。
但是你说的改变文件创建时间,这个我就不知道怎么搞了,这功能貌似没什么需求吧...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-3-1 01:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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