当前位置: 代码迷 >> 单片机 >> SD卡中建立文件,该怎么处理
  详细解决方案

SD卡中建立文件,该怎么处理

热度:285   发布时间:2016-04-28 14:42:53.0
SD卡中建立文件
请教大家一个问题,在SD卡中以时间为文件名建立txt文件。请问怎么与时间联系起来呢。能否给点提示呢。
谢谢。
------解决思路----------------------
引用:
请教大家一个问题,在SD卡中以时间为文件名建立txt文件。请问怎么与时间联系起来呢。能否给点提示呢。
谢谢。


这些文件是人手工创建的还是系统的哪个程序创建。

是程序创建的,就去查查这个程序的资料
------解决思路----------------------
先得到RTC时间,然后放到文件名fileName中;
在f_open时以此为文件名创建文件。

sprintf(fileName, "File_%s.txt", RTCTime);
f_open(&file, fileName, FA_CREATE_NEW 
------解决思路----------------------
 FA_WRITE);
------解决思路----------------------
如果使用的是fatfs系统 可以重写DWORD get_fattime (void)函数 可以详细阅读一下fatfs的官网

DWORD get_fattime(void)
{
DWORD time_buff=0;

PCF8563_ReadWrite_Time(1); //获取时间信息

//将时间十六进制转换成BCD码
TimeValue.year = HX_to_DX(TimeValue.year); //年
TimeValue.month = HEX_to_BCD(TimeValue.month); //月
TimeValue.date = HEX_to_BCD(TimeValue.date); //日
TimeValue.hour = HEX_to_BCD(TimeValue.hour); //时
TimeValue.minute = HEX_to_BCD(TimeValue.minute);//分
TimeValue.second = HEX_to_BCD(TimeValue.second);//秒

//按照FatFs的时间格式组合
time_buff 
------解决思路----------------------
= ((TimeValue.year - 1980)<<25); //年
time_buff 
------解决思路----------------------
= (TimeValue.month<<21); //月
time_buff 
------解决思路----------------------
= (TimeValue.date<<16); //日

time_buff 
------解决思路----------------------
= (TimeValue.hour<<11); //时 
time_buff 
------解决思路----------------------
= (TimeValue.minute<<5); //分
time_buff 
------解决思路----------------------
= (TimeValue.second/2); //秒

return time_buff;
}


  相关解决方案