[应用方案] FATFS 没法访问第二卷目录

[复制链接]
424|1
 楼主| sadicy 发表于 2022-7-17 09:07 | 显示全部楼层 |阅读模式
使用SD卡和Flash做2个磁盘,将SD或flash做为卷0,程序都可以正常访问目录,文件,另外可以对卷1进行格式化,但是却访问不了卷1的目录;有没有知道什么问题的?

  1. void ShowSDFiles(u8 index)
  2. {
  3. FILINFO finfo;
  4. DIR dirs;
  5. char path[100] = {""};
  6. printf("\nSD file system starting! \n");
  7. disk_initialize(index);
  8. printf("f_mount %d\n", f_mount(index, &fs));
  9. printf("f_mkfs %d\n", f_mkfs(index, 0, 512)); // SD 卡时为4096
  10. printf("----------------------------------------------------\n");
  11. printf("f_opendir(&dirs, "/") = %d;\n", f_opendir(&dirs, "/"));
  12. if(f_opendir(&dirs, path) == FR_OK)
  13. {
  14.   while(f_readdir(&dirs, &finfo) == FR_OK)
  15.   {
  16.    if(!finfo.fname[0]) break;
  17.    if (finfo.fattrib & AM_ARC)
  18.    {
  19.     printf("            file name is: %s    ", finfo.fname);
  20.     printf("file size is: %d \n", finfo.fsize);
  21.     if(File_type_Check((u8 *)finfo.fname, "txt"))
  22.     {
  23.      printf("file contex is:");
  24.      res = f_open(&fsrc, finfo.fname, FA_OPEN_EXISTING | FA_READ);
  25.      while(1)
  26.      {
  27.       memset(buffer, 0, sizeof(buffer));
  28.       if(f_gets(buffer, 512, &fsrc))
  29.       {
  30.        printf("%s", buffer);
  31.       }
  32.       else break;
  33.      }
  34.      f_close(&fsrc);
  35.     }
  36.    }
  37.    else
  38.    {
  39.     printf("Path name is: %s\n", finfo.fname);
  40.     continue; //break;
  41.    }
  42.   }
  43.   res = f_open(&fsrc, "armjishu.txt", FA_CREATE_ALWAYS | FA_WRITE);
  44.   res = f_write(&fsrc, &armjishu, sizeof(text), &bw);
  45.   f_close(&fsrc);
  46. else
  47. {
  48.   printf(" err: f_opendir\n");
  49. }
  50. printf("----------------------------------------------------\n");
  51. f_mount(index, NULL);
  52. }


littlelida 发表于 2022-7-20 15:34 | 显示全部楼层
文件系统涉及的 太多了,
一步一步的试,只能
或者哪位大神直接有过类似的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

166

主题

1036

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部