急! 数据格式转换? unsigned short 转换为char型

2019-08-14 02:12发布

 我现在在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型字符?  或者有没有其他更好实现上述功能的方法,多谢指点!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
正点原子
1楼-- · 2019-08-14 03:37
回复【楼主位】葱花鱼:
---------------------------------
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位的数据.返回即可.
葱花鱼
2楼-- · 2019-08-14 08:06
原子哥:
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也是数据格式不对 
正点原子
3楼-- · 2019-08-14 11:01
 精彩回答 2  元偷偷看……
葱花鱼
4楼-- · 2019-08-14 16:16
原子哥:
      你说的这个我已经实现了,可能是我表述的有问题,造成误解了.我是想实现根据RTC中的日期创建文件.比如:我今天测试的数据存储在20110928文件夹内,明天测试的数据存储在20110929文件夹内,按照你说的方法没法实现啊?? 
正点原子
5楼-- · 2019-08-14 19:02
回复【5楼】葱花鱼:
---------------------------------
那你把时间拼凑成一个string类型不就可以了...
很简单的说....
葱花鱼
6楼-- · 2019-08-14 23:18
试试看.....

一周热门 更多>