OpenEdv-开源电子网

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

FATFS突然不能新建文件了

[复制链接]

145

主题

445

帖子

0

精华

高级会员

Rank: 4

积分
823
金钱
823
注册时间
2014-1-15
在线时间
350 小时
发表于 2016-1-2 14:24:10 | 显示全部楼层 |阅读模式
10金钱
char newfile[32]="0:/CS/NEW.TXT";



    AA=f_open(FILE0,(const TCHAR*)newfile,FA_CREATE_NEW);
    if(AA)//
    {
//        f_mount(0, NULL);
        LCD_ShowString(30,190,200,16,16,"ERROR");         
    }
    else
    {
//        f_mount(0, NULL);
        LCD_ShowString(30,190,200,16,16,"OK");        
    }

通过仿真发现AA的值是FR_OK,可是SD卡在电脑上看不到NEW.TXT文件。
格式化SD卡(快速和慢速都格式化过)也不行。
读文件夹的话是可以读到NEW.TXT的信息。可是不动SD卡,再下一个只有读文件夹函数的程序,又读不到这个文件的信息了


最佳答案

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

谢谢你的帮忙。问题没有解决。1、我新建一个文件后立即写入数据后我上面提的问题就不存在了。这就是说不能建立空文件,可是我曾经成功建立空文件啊,感觉莫名其妙。 2、我又做了一个试验,连续新建254个空文件,只有第一个文件在电脑上看不到
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

145

主题

445

帖子

0

精华

高级会员

Rank: 4

积分
823
金钱
823
注册时间
2014-1-15
在线时间
350 小时
 楼主| 发表于 2016-1-2 14:24:11 | 显示全部楼层
本帖最后由 Di诺 于 2016-1-3 16:29 编辑
Bula 发表于 2016-1-2 14:33
f_open\f_write\f_close,你把这几个步骤都做完了,再看SD卡上的文件呢!

谢谢你的帮忙。问题没有解决。1、我新建一个文件后立即写入数据后我上面提的问题就不存在了。这就是说不能建立空文件,可是我曾经成功建立空文件啊,感觉莫名其妙。
2、我又做了一个试验,连续新建254个空文件,只有第一个文件在电脑上看不到

回复

使用道具 举报

6

主题

91

帖子

0

精华

高级会员

Rank: 4

积分
767
金钱
767
注册时间
2014-11-15
在线时间
91 小时
发表于 2016-1-2 14:33:10 | 显示全部楼层
f_open\f_write\f_close,你把这几个步骤都做完了,再看SD卡上的文件呢!
回复

使用道具 举报

7

主题

103

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
311
金钱
311
注册时间
2015-8-18
在线时间
63 小时
发表于 2016-1-2 17:46:40 | 显示全部楼层
写法有误吧,试试这个"0:NEW.TXT";吧。
回复

使用道具 举报

145

主题

445

帖子

0

精华

高级会员

Rank: 4

积分
823
金钱
823
注册时间
2014-1-15
在线时间
350 小时
 楼主| 发表于 2016-1-2 21:22:00 | 显示全部楼层
feisheng168 发表于 2016-1-2 17:46
写法有误吧,试试这个"0:NEW.TXT";吧。

0:/CS/NEW.TXT"
这是路径啊,我已经在根目录下建立了文件夹CS,然后在CS下新建文件NEW.TXT
回复

使用道具 举报

7

主题

103

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
311
金钱
311
注册时间
2015-8-18
在线时间
63 小时
发表于 2016-1-2 23:33:33 | 显示全部楼层
Di诺 发表于 2016-1-2 21:22
0:/CS/NEW.TXT"
这是路径啊,我已经在根目录下建立了文件夹CS,然后在CS下新建文件NEW.TXT

参考这个程序试试,不过这个是407的, 读写文件以及创建文件.rar (4.52 MB, 下载次数: 2033)
回复

使用道具 举报

20

主题

468

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
1684
金钱
1684
注册时间
2014-2-25
在线时间
230 小时
发表于 2016-1-3 08:32:51 | 显示全部楼层
也有可能是SD卡出现问题了
回复

使用道具 举报

145

主题

445

帖子

0

精华

高级会员

Rank: 4

积分
823
金钱
823
注册时间
2014-1-15
在线时间
350 小时
 楼主| 发表于 2016-1-3 10:07:08 | 显示全部楼层
1201yuge 发表于 2016-1-3 08:32
也有可能是SD卡出现问题了

SD卡在电脑上可以正常读写
回复

使用道具 举报

20

主题

468

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
1684
金钱
1684
注册时间
2014-2-25
在线时间
230 小时
发表于 2016-1-3 15:24:37 | 显示全部楼层
Di诺 发表于 2016-1-3 10:07
SD卡在电脑上可以正常读写

有时候就是电脑可以,但是单片机写不了了,如果还有SD卡的话,换一张试试看
回复

使用道具 举报

2

主题

12

帖子

0

精华

高级会员

Rank: 4

积分
670
金钱
670
注册时间
2012-2-27
在线时间
157 小时
发表于 2016-1-3 16:16:28 | 显示全部楼层
可以没有f_write但必须有f_open、f_close
回复

使用道具 举报

145

主题

445

帖子

0

精华

高级会员

Rank: 4

积分
823
金钱
823
注册时间
2014-1-15
在线时间
350 小时
 楼主| 发表于 2016-1-3 16:27:45 | 显示全部楼层
dmmcu 发表于 2016-1-3 16:16
可以没有f_write但必须有f_open、f_close

兄弟,你没有看懂我的问题吧。我的意思是只新建一个空文件f_open函数会返回FR_OK,但在电脑上看不到
回复

使用道具 举报

6

主题

91

帖子

0

精华

高级会员

Rank: 4

积分
767
金钱
767
注册时间
2014-11-15
在线时间
91 小时
发表于 2016-1-3 20:58:45 | 显示全部楼层
Bula 发表于 2016-1-2 14:33
f_open\f_write\f_close,你把这几个步骤都做完了,再看SD卡上的文件呢!

那你在f_open后不做任何操作就f_close试试呢,我记得我在实验时出现过大小为0的文件的
回复

使用道具 举报

2

主题

12

帖子

0

精华

高级会员

Rank: 4

积分
670
金钱
670
注册时间
2012-2-27
在线时间
157 小时
发表于 2016-1-4 09:34:45 | 显示全部楼层
Di诺 发表于 2016-1-3 16:27
兄弟,你没有看懂我的问题吧。我的意思是只新建一个空文件f_open函数会返回FR_OK,但在电脑上看不到

没有f_close等于没有保存,当然看不到了。
回复

使用道具 举报

9

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2015-12-6
在线时间
15 小时
发表于 2016-4-3 12:13:02 | 显示全部楼层
dmmcu 发表于 2016-1-4 09:34
没有f_close等于没有保存,当然看不到了。

兄弟,不知道你的问题解决了没?我也遇到类似的情况,SD卡中的文件有2、3十个之后,就不能创建文件了,一直也没有找到原因。
回复

使用道具 举报

3

主题

11

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2016-8-26
在线时间
9 小时
发表于 2016-9-27 16:57:01 | 显示全部楼层
我试过了,没有f_close()的话是看不到文件,加了f_close()后在SD卡里就可以看到字节为0的新建文件了!
回复

使用道具 举报

10

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
319
金钱
319
注册时间
2017-1-20
在线时间
51 小时
发表于 2017-3-2 16:58:39 | 显示全部楼层
mark下,我也遇到了不能创建的问题,
跟踪程序是fatfs的在
dir_next中;
                        if (i >= dp->fs->n_rootdir)        /* Report EOT if it reached end of static table */
                                return FR_NO_FILE;
这个地方i = 0x200 而 n_rootdir 也是0x200  都是512时,不能创建的;
也是创建了254个,在创建255的时候出现的问题,
我再跟踪下原因;
回复

使用道具 举报

0

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
111
金钱
111
注册时间
2020-8-30
在线时间
31 小时
发表于 2021-1-29 16:00:59 | 显示全部楼层
dmmcu 发表于 2016-1-4 09:34
没有f_close等于没有保存,当然看不到了。

你这一句话太重要了,我也是出现类似情况,f_close后果然能看到了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-15 15:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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