高级会员

- 积分
- 963
- 金钱
- 963
- 注册时间
- 2016-3-16
- 在线时间
- 109 小时
|
3金钱
在做FATFS文件系统时遇到一个问题,我用RTC写底层DWORD get_fattime (void)
{
return 0;
}
编写为
DWORD get_fattime (void)//用32的RTC实现此函数
{
RTC_TimeTypeDef* RTC_TimeStruct;//时间
RTC_DateTypeDef* RTC_DateStruct;//日期
u32 time=0;
RTC_GetTime(RTC_Format_BIN, RTC_TimeStruct);//读取时间,以二进制输出
RTC_GetDate(RTC_Format_BIN,RTC_DateStruct);//读取日期
time=((RTC_DateStruct->RTC_Year+2000-1980)<<25) | (RTC_DateStruct->RTC_Month<<21) | (RTC_DateStruct->RTC_Date<<16)
| (RTC_TimeStruct->RTC_Hours<<11) | (RTC_TimeStruct->RTC_Minutes<<5) | (RTC_TimeStruct->RTC_Seconds<<0);
return time;
}
发现现象如下:
1.在主函数创建新文件夹时,可以显示修改时间了,而且正确,感觉移植成功了。所以赶紧试试了创建新文件。
2.调用创建文件api后,发现函数可以返回FR_OK,但是在电脑上发现并没有新文件生成。
3.经过几次测试,得出结论:加入RTC后文件夹可以创建成功,并且显示时间正常。但新文件无法生成,但f_open能返回FR_OK,不报错,而且除了生成新文件有问题其他api目前
并没发现问题。 然后去掉RTC之后,发现一切正常,所以我觉得是RTC导致的,但是一直还没发现怎么解决,所以想问问有没有人遇到或者解决了?谢谢。
|
最佳答案
查看完整内容[请看2#楼]
能返回就和RTC无关了。。。
剩下的是你文件系统的问题了。
我们综合实验,创建的文件就是以RTC时间为文件名的,没有任何问题
|