OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3983|回复: 6

W25Q64挂载文件系统创建文件夹问题

[复制链接]

23

主题

90

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2018-8-12
在线时间
100 小时
发表于 2022-3-4 13:26:04 | 显示全部楼层 |阅读模式
1金钱
挂载的文件系统,SD卡创建目录是正常的,W25Q64创建文件夹的时候,会出现好多个如下图所示:
1646371354.jpg 附带浏览文件
  1. FRESULT scan_files (
  2.     char* path        /* Start node to be scanned (***also used as work area***) */
  3. )
  4. {
  5.     FRESULT res;
  6.     DIR dir;
  7.     UINT i;
  8.     FILINFO fno;
  9.                 u8 *fn;
  10.                 u16 tt = 0;
  11.                 //printf("mem use %d \r\n",my_mem_perused() );
  12.                 fno.lfsize=_MAX_LFN*2+1;                                    //长文件名最大长度
  13.                 fno.lfname=mymalloc(fno.lfsize); //为长文件缓存区分配内存
  14.     res = f_opendir(&dir, path);                       /* Open the directory */
  15.     if (res == FR_OK) {
  16.         for (;;) {
  17.             res = f_readdir(&dir, &fno);                   /* Read a directory item */
  18.             if (res != FR_OK || fno.fname[0] == 0) break;  /* Break on error or end of dir */
  19.             if (fno.fattrib & AM_DIR) {                    /* It is a directory */
  20.                 i = strlen(path);
  21.                 sprintf(&path[i], "/%s", fno.fname);
  22.                                                                 fn=(u8*)(*fno.lfname?fno.lfname:fno.fname);
  23.                                                                 printf("%s  %ld \n", fn,fno.fsize);
  24.                 res = scan_files(path);                    /* Enter the directory */
  25.                 if (res != FR_OK) break;
  26.                 path[i] = 0;
  27.             } else {                                       /* It is a file. */
  28.                 //printf("%s/%s\n", path, fno.fname);
  29.                                                         fn=(u8*)(*fno.lfname?fno.lfname:fno.fname);
  30.                                                         printf("%s  %ld \n", fn,fno.fsize);
  31.             }
  32.                                                 tt++;
  33.         }
  34.                                 printf("文件数量 :%d \n",tt);
  35.         f_closedir(&dir);
  36.     }
  37.                 myfree(fno.lfname);
  38.     return res;
  39. }
复制代码




最佳答案

查看完整内容[请看2#楼]

解决了 遍历的时候需要使用数组保存路径,scan_files(pat1);
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

23

主题

90

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2018-8-12
在线时间
100 小时
 楼主| 发表于 2022-3-4 13:26:05 | 显示全部楼层
解决了  遍历的时候需要使用数组保存路径,scan_files(pat1);
回复

使用道具 举报

23

主题

90

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2018-8-12
在线时间
100 小时
 楼主| 发表于 2022-3-4 14:31:18 | 显示全部楼层
用官方例程 加上 上面的文件浏览也会出现这种情况
回复

使用道具 举报

14

主题

821

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2070
金钱
2070
注册时间
2021-7-17
在线时间
647 小时
发表于 2022-3-4 15:10:28 | 显示全部楼层
自己设计的电路吗?
回复

使用道具 举报

23

主题

90

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2018-8-12
在线时间
100 小时
 楼主| 发表于 2022-3-4 15:15:15 | 显示全部楼层
正点原子开发板啊  用官方例程试的  W25Q128 挂载FAFTS   创建文件夹  然后遍历文件 出现上面的情况
回复

使用道具 举报

23

主题

90

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2018-8-12
在线时间
100 小时
 楼主| 发表于 2022-3-4 15:17:47 | 显示全部楼层
JUSTDY 发表于 2022-3-4 15:15
正点原子开发板啊  用官方例程试的  W25Q128 挂载FAFTS   创建文件夹  然后遍历文件 出现上面的情况

是用 正点原子  F4 实验39 FATFS实验  我加了个文件遍历函数(SD卡可以正常遍历,W25Q128就不行了)
回复

使用道具 举报

23

主题

90

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2018-8-12
在线时间
100 小时
 楼主| 发表于 2022-3-4 15:18:22 | 显示全部楼层
JUSTDY 发表于 2022-3-4 15:17
是用 正点原子  F4 实验39 FATFS实验  我加了个文件遍历函数(SD卡可以正常遍历,W25Q128就不行了)

有板子的可以帮忙试试 好奇怪
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 03:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表