在做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导致的,但是一直还没发现怎么解决,所以想问问有没有人遇到或者解决了?谢谢。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
能返回就和RTC无关了。。。
剩下的是你文件系统的问题了。
我们综合实验,创建的文件就是以RTC时间为文件名的,没有任何问题
仿真时能返回正常时间,所以,我才不知道该往哪个方向查问题了。
好的,我再找找原因,谢谢。
一周热门 更多>