FAT32 R0.12b f_mkfs应用实例

来源:互联网 发布:json接口api 编辑:程序博客网 时间:2024/06/05 03:14
做单片机开发难免用到文件系统,以前用的老版本,最近做新项目想搞个更新版的,结果格式化这里就遇到困难,原来版本格式化函数只有三个参数:
FRESULT f_mkfs ( BYTE  Drive,            /* 逻辑驱动器号 */ BYTE  PartitioningRule, /* 分区规则 */ WORD  AllocSize         /* 分配单元大小 */);
最新版R0.12b (September 4, 2016)是这样的:
FRESULT f_mkfs (  const TCHAR* path,  /* [IN] Logical drive number */  BYTE  opt,          /* [IN] Format options */  DWORD au,           /* [IN] Size of the allocation unit */  void* work,         /* [-]  Working buffer */  UINT len            /* [IN] Size of working buffer */);
具体什么意思可参见官网,今天解决问题了,就分享一下使用实例,代码如下
void mkfs(){  FIL fil;            /* File object */  FRESULT res;        /* API result code */  u8 bw;            /* Bytes written */  u8 work[_MAX_SS]; /* Work area (larger is better for process time) */  u8 readByte[15];  bw=f_mkfs("0",FM_FAT|FM_SFD,1024,work,sizeof work);  printf("%d",bw);  res=f_mount (&fs,"0",1);  res=f_open(&fil, "hello.txt", FA_READ | FA_WRITE);  res=f_read(&fil,  readByte,  15, &bw);  printf("%s",readByte);  res=f_close(&fil);
  res=f_mount(0, "0", 0);}

调用这个函数就会在驱动器0(实际用的是闪存w25q64)创建一个fat32文件系统。然后,就可以用面向对象的思维使用它了。注意最后一句是取消挂载。

我用的单片机是stm32f103zet6。

0 0
原创粉丝点击