我现在在MINISTM32开发板上已经成功移植了FATFS0.08,可以实现 .txt文件创建与读写, 也可以创建文件夹. 现在的问题是我想实现根据STM32 RTC得到的日期创建文件夹和利用时间创建.txt文件,可是在创建文件夹的过程中发现时数据格式不对,问题如下:
1 RTC中返回日期和时间是通过tm结构体,
typedef struct
{
u8 hour;
u8 min;
u8 sec;
//公历日月年周
u16 w_year;
u8 w_month;
u8 w_date;
u8 week;
}tm;
extern tm timer;
2 u16 w_year ;的定义如下: typedef unsigned short u16; (见stm32f10x_type.h 第40行)
3 创建文件目录函数声明 FRESULT f_mkdir (const TCHAR*);
4 TCHAR声明 typedef char TCHAR;(FATFS 中Ff.h 066行)
问题是如何将u16类型数据转换为TCHAR型字符? 或者有没有其他更好实现上述功能的方法,多谢指点!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
fatfs中创建文件,我一般不加时间的.
格式不对,只需要稍作修改即可,你看看fatfs的时间格式是什么样的.
//获得时间
//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)
{
return 0;
}
这个是格式说明,你按照上面的格式把年月日时分秒,自己组织成一个32位的数据.返回即可.
DWORD get_fattime (void) ;这个函数我看懂了,九九的程序里面这个返回的时间也是根据RTC提供的数据然后经过移位按照一定规则组成的一个32位数据. 我想实现的过程是: 例如现在时间是2011-09-28 13:22 我想创建一个20110928的文件夹. 而和FRESULT f_mkdir (const TCHAR*);创建目录的数据格式不对, get_fattime 返回的是32位的,而TCHAR是8位,我用get_fattime 没有实现才直接利用RTC程序中的数据timer.w_year也是数据格式不对
你说的这个我已经实现了,可能是我表述的有问题,造成误解了.我是想实现根据RTC中的日期创建文件.比如:我今天测试的数据存储在20110928文件夹内,明天测试的数据存储在20110929文件夹内,按照你说的方法没法实现啊??
---------------------------------
那你把时间拼凑成一个string类型不就可以了...
很简单的说....
一周热门 更多>