在文件的属性中,记录着文件创建的时间,FatFs 通过调用 get_fattime 函数获取 RTC 时钟数据,直接屏蔽 get_fattime 函数会导致工程在编译过程中出现错误。由于没有实际开启芯片 RTC 功能,这里直接填入固定日期及时间进行替代。 1. DWORD get_fattime(void) { 2. return ((DWORD)(2020 - 1980) << 25) /* Year...
GET_SECTOR_COUNT 返回总扇区数赋给 Buffer 指向的 DWORD 变量。只在 f_mkfs 函数中,使用了该命令。 GET_BLOCK_SIZE 返回以扇区为单位的存储阵列的擦除块大小赋给 Buffer 指向的 DWORD 变量。当擦除块大小未知或是磁盘设备时,返回 1 。只在 f_mkfs 函数中,使用了该命令。 31.get_fattime获取当前时间 函数...
get_fattime函数用于获取当前时间戳,在ff.c文件中被调用。FatFs在文件创建、被修改时会记录时间,这里我们直接使用赋值方法设定时间戳。为更好的记录时间,可以使用控制器RTC功能,具体要求返回值格式为: bit31:25 ——从1980至今是多少年,范围是 (0..127) ; bit24:21 ——月份,范围为 (1..12) ; bit20:16...
设置为0。 设置完成后,编译程序,会发现disk_write, disk_read, disk_ioctl, disk_status, disk_initialize, get_fattime. 根据系统配置来实现这些函数。顺序是先易后难。 get_fattime顾名思义是得到系统的时间。这个从RTC获取时间就OK。 disk_initialize和disk_status这两个函数实现的内容是一样的。因为都是为了...
最后一个函数是 get_fattime 函数,该函数介绍如图 44.1.8 所示: 以上六个函数,我们将在软件设计部分一一实现。通过以上 3 个步骤,我们就完成了对 FATFS 的移植,就可以在我们的代码里面使用 FATFS 了。 FATFS 提供了很多 API 函数,这些函数 FATFS 的自带介绍文件里面都有详细的介绍(包括 参考代码),我们这里就不...
这样写 DWORD get_fattime(void){ DWORD time_buff=0;PCF8563_ReadWrite_Time(1);//获取时间信息 //将时间十六进制转换成BCD码 TimeValue.year = HX_to_DX(TimeValue.year);//年 TimeValue.month = HEX_to_BCD(TimeValue.month);//月 TimeValue.date = HEX_to_BCD(TimeValue.date);//日 Tim...
在fatfs.c文件中找到DWORD get_fattime(void)函数,添加以下程序: DWORD get_fattime(void){/* USER CODE BEGIN get_fattime */0;0};0};//获取当前日期时间 HAL_RTC_GetTime(&hrtc, &fT...
disk_status - Get disk status 获取磁盘状态 disk_read - Read sector(s) 读扇区 disk_write - Write sector(s) 写扇区 disk_ioctl - Control device dependent features 设备相关的控制特性 get_fattime - Get current time 获取当前时间 结合我之前写的一篇博客SPI操作SD卡驱动,完成自定义的diskio.c文件如下...
在get_fattime()函数里,可以将工程里的RTC时间加入进去,给文件创建函数提供时间。 get_fattime()函数在ff.h里进行了声明,用户自己需要在diskio.c文件里实现该函数。 图2-3-3 get_fattime函数实现示例: (如果本工程里有RTC时间,可以将时间替换为正确的RTC结构里的时间) DWORD get_fattime(void) { return (DWO...
get_fattime- 得到系统的时间,格式请见文档。不用的话,返回0就行。 这样移植了,也基本上就成功了,但是在我的板子上面死活不行,每次一执行到几个宏定义比如 LD_WORD(ptr)(WORD)(*(WORD*)(BYTE*)(ptr))就产生数据终止异常( DATA ABORT exception),但是网上的一个兄弟的(ouravr上的一个兄弟,用的SD卡,IAR...