OpenEdv-开源电子网

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

FATFS中,把系统时间写入TXT,只能写入年份

[复制链接]

21

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
426
金钱
426
注册时间
2014-7-20
在线时间
145 小时
发表于 2014-8-13 16:27:43 | 显示全部楼层 |阅读模式
5金钱
FIL* fdst=0;  //文件对象
FRESULT res; 
  UINT  bw; 
u8 *pname=0;

fdst=(FIL *)gui_memin_malloc(sizeof(FIL)); //开辟FIL字节的内存区域 
RTC_Get();//更新时间
pname=gui_memin_malloc(40);//申请40个字节内存,类似"0:TEXT/TEXT20120321210633.txt"
  pname[0]='\0';//添加结束符
sprintf((char*)pname,"%04d年%02d月%02d日%02d时%02d分%02d秒\r\n",calendar.w_year,calendar.w_month,calendar.w_date,calendar.hour,calendar.min,calendar.sec);
//fdst.fsize=0;

res = f_open(fdst,"0:/TEXT/001.txt", FA_READ | FA_WRITE | FA_OPEN_ALWAYS);//打开文本,while之前已经   
  if( res == FR_OK)
      {
       Show_Str(0,0,240,16,"磁盘正常",16,0);
    res = f_lseek(fdst,fdst->fsize);  
       res = f_write(fdst,(const TCHAR*)pname, sizeof((const TCHAR*)pname), &bw);
       f_close(fdst);
       }      
     
 }
 
gui_memin_free(fdst);
gui_memin_free(pname);

请各位大侠帮我看看这上面的程序 只能把年份 2014  写入TXT文本。后面的月 时分秒 都不能写入。

最佳答案

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

sizeof不能用于获取指针的长度.... 这是你的问题点所在.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-8-13 19:08:34 | 显示全部楼层
要符合文件系统格式才行的
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

21

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
426
金钱
426
注册时间
2014-7-20
在线时间
145 小时
 楼主| 发表于 2014-8-14 00:36:24 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
我不用直接把他注释掉,效果一样。如果非要获取指针长度,那应该用什么呢?还望指教
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2014-8-14
在线时间
0 小时
发表于 2014-8-14 13:27:54 | 显示全部楼层
sprintf函数第二个参数应该是格式吧?例如"%4d-%2d-%2d\t%2d:%2d:%2d",如下:
sprintf(File_Buffer_calendar_To+1,"%4d-%2d-%2d\t%2d:%2d:%2d",calendar_data[0],calendar_data[1],calendar_data[2],calendar_data[3],calendar_data[4],calendar_data[5]);
回复

使用道具 举报

21

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
426
金钱
426
注册时间
2014-7-20
在线时间
145 小时
 楼主| 发表于 2014-8-15 15:58:33 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
res = f_write(fdst,pname, strlen(pname), &bw); 

我直接这样编译都通不过呢?请问是怎么回事?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

21

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
426
金钱
426
注册时间
2014-7-20
在线时间
145 小时
 楼主| 发表于 2014-8-18 17:04:37 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
我直接给一个定值解决问题
回复

使用道具 举报

9

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
111
金钱
111
注册时间
2014-7-18
在线时间
0 小时
发表于 2014-8-18 23:16:00 | 显示全部楼层
#include "string.h"
Stm32 F0/F103
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-4 11:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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