若想创建中文名称的文件名,写入中文数据的话,需要将ffconf.h文件中FF_CODE_PAGE的值修改为936。 如果在调用FatFs文件系统的函数创建文件时跳转到HardFault_Handler硬件错误中断中的情况,是因为栈空间不足导致,将启动文件中Stack_Size的值修改大一些即可。 结语 本文对FatFs文件系统进行了简要介绍,并实现了FatFs文件系统...
FRESULT f_mkfs (constTCHAR* path,/*Logical drive number*/BYTE sfd,/*Partitioning rule 0:FDISK, 1:SFD*/UINT au/*Size of allocation unit in unit of byte or sector*/) 在设备正常挂载后,就可以进行文件读写操作了。使用文件之前,必须使用 f_open 函数打开文件,不再使用文件必须使用 f_close 函数...
disk_ioctl函数有三个形参,pdrv为设备物理编号,cmd为控制指令,包括获取SD卡块数量命令(GET_SECTOR_COUNT)、获取SD卡块大小命令(GET_SECTOR_SIZE)、获取可擦除扇区块大小命(GET_BLOCK_SIZE)以及结束写入命令(CTRL_SYNC)。buff为指令对应的数据指针。 如果设置的是SD卡,则会调用sd_disk_ioctl函数,函数原型如代码清...
FRESULTf_mkfs(constTCHAR*path,BYTEsfd,UINTau);参数-->path:逻辑设备编号,使用设备根路径表示sfd:0或1,0表示为硬盘设备;1表示为软盘设备au:指定扇区大小,若为0表示通过disk_ioctl函数获取 f_open:创建/打开一个文件对象 FRESULTf_open(FIL*fp,constTCHAR*path,BYTEmode);参数-->fp:将创建或打开的文件对象...
au:指定扇区大小,若为0表示通过disk_ioctl函数获取 1. 2. 3. 4. f_open:创建/打开一个文件对象 FRESULT f_open(FIL* fp, const TCHAR* path, BYTE mode); 参数--> fp:将创建或打开的文件对象指针 path:文件名指针,指定将创建或打开的文件名(包含文件类型后缀名) ...
DWORD au_size:以字节为单位指定分配单元(簇)的大小。对于 FAT/FAT32 卷,有效值为扇区大小和 128 * 扇区大小(包括在内)之间的 2 的幂,或者对于 exFAT 卷,最大为 16 MB。如果给出零(默认值)或任何无效值,则该函数使用默认分配单元大小,具体取决于卷大小。
BYTE cmd, /* Control code */ void *buff /* Buffer to send/receive control data */ ) { unsigned char CSD[16]; unsigned charSdState[64]; unsigned int c_size,c_size_multi, read_bl_len, sector_size, au_size; DRESULT Result =RES_ERROR; if (pd...
drive *//*---*/FRESULTf_mkfs(constTCHAR*path,/* Logical drive number */BYTEsfd,/* Partitioning rule 0:FDISK, 1:SFD */UINTau/* Size of allocation unit in unit of byte or sector */) 上面的代码取自ff.c文件,注释说明了各个参数的含义,这里就不再赘述了。 写测试 需要用到f_open()、f...
FRESULT f_mkfs(const TCHAR* path, BYTE opt, DWORD au, void* work, UINT len) /*获取卷上的可用空间*/ FRESULT f_getfree(const TCHAR* path, DWORD* nclst, FatFs** FatFs) /*打开/创建文件*/ FRESULT f_open(FIL* fp, const TCHAR* path, BYTE mode) /*写入一个字符串*/ int f_puts(...
UINT au /* Size of allocation unit in unit of byte or sector */ ) { return f_mkfs(USERPath, sfd, au); } FRESULT exf_unmount(void) { FATFS_UnLinkDriver(USERPath); return f_mount(NULL, USERPath, 1); } FRESULT exf_open(const void *filename, BYTE mode) ...