OpenEdv-开源电子网

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

在FATFS中,如何把系统时间添加到txt

[复制链接]

21

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
426
金钱
426
注册时间
2014-7-20
在线时间
145 小时
发表于 2014-8-11 20:02:12 | 显示全部楼层 |阅读模式
5金钱
请问各位大侠,在FATFS中,如何把系统时间添加到txt,中呢?往TXT中写固定的文本实现了。
BYTE sample_buffer1[] = "*1234567890\r\n"; 
这是定义的往TXT内写的的字符
u32 get_fattime_1 (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;   
}
这是时间获取函数。
请问这两个怎么可以把他合并在一起,让获取的时间可以直接写入TXT内呢?

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

使用道具 举报

9

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
111
金钱
111
注册时间
2014-7-18
在线时间
0 小时
发表于 2014-8-11 23:52:54 | 显示全部楼层
sprintf  语句   是个神器
Stm32 F0/F103
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-8-12 08:15:57 | 显示全部楼层
这是我的转换
//将时间十六进制转换成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); //秒
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

21

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
426
金钱
426
注册时间
2014-7-20
在线时间
145 小时
 楼主| 发表于 2014-8-12 19:47:36 | 显示全部楼层
回复【2楼】psrazil:
---------------------------------
sprintf 这个语句具体怎么用,在什么地方可以有说明,我事先页有停放说过,但不知道用,也不知哪里有说明
回复

使用道具 举报

9

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
111
金钱
111
注册时间
2014-7-18
在线时间
0 小时
发表于 2014-8-12 19:55:42 | 显示全部楼层
函数功能:把格式化的数据写入某个字符串函数原型:
int sprintf( char *buffer, const char *format [, argument] … );
返回值:字符串长度(strlen)
例子:char* who = "I";
char* whom = "CSDN";
sprintf(s, "%s love %s.", who, whom); //产生:"I love CSDN. "  这字符串写到s中
sprintf(s, "%10.3f", 3.1415626); //产生:" 3.142"
Stm32 F0/F103
回复

使用道具 举报

21

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
426
金钱
426
注册时间
2014-7-20
在线时间
145 小时
 楼主| 发表于 2014-8-12 20:01:10 | 显示全部楼层
回复【6楼】psrazil:
---------------------------------
我要把这个返回值 return date (date是U32定义的)转换成BYTE sample_buffer1[] 这种字符串。用char 型在TXT显示又不行。C语言很多都没有学好。还不能灵活运用
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-8-12 22:27:46 | 显示全部楼层
回复【5楼】冬天的野狼:
---------------------------------
百度下,这个函数吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-3 23:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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