OpenEdv-开源电子网

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

FATFS多次写文件时出错问题

[复制链接]

4

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2020-10-27
在线时间
16 小时
发表于 2021-6-22 16:59:04 | 显示全部楼层 |阅读模式
1金钱
大佬们,遇到个问题就是在单次向文件里写数据的时候没问题,用定时器中断,想要1s写一次的时候,就会出错,有大能知道为什么吗 帮忙解决一下呗,非常感谢

捕获.PNG

最佳答案

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

你在中断里面调用fatfs写入数据么? fatfs操作时间是不固定的哦,建议你不用中断,delay的方式测试下看看
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2021-6-22 16:59:05 | 显示全部楼层
你在中断里面调用fatfs写入数据么? fatfs操作时间是不固定的哦,建议你不用中断,delay的方式测试下看看
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13079
金钱
13079
注册时间
2012-11-26
在线时间
3809 小时
发表于 2021-6-23 08:31:42 | 显示全部楼层
放在主循环里,1S一次试试
回复

使用道具 举报

4

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2020-10-27
在线时间
16 小时
 楼主| 发表于 2021-6-23 08:53:23 | 显示全部楼层
本帖最后由 15851921656 于 2021-6-23 16:30 编辑

程序里面还有好多别的东西,现在这个现象好了,我写了一下格式化NANDFLASH的语句,现在坏了,关机数据就都没了,而且连上电脑显示里面有东西打开却没有,而且卷标也变了  不是NANDFLASH了,变成U盘了,我都不知道哪来的
回复

使用道具 举报

4

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2020-10-27
在线时间
16 小时
 楼主| 发表于 2021-6-23 08:54:47 | 显示全部楼层
正点原子 发表于 2021-6-23 01:40
你在中断里面调用fatfs写入数据么? fatfs操作时间是不固定的哦,建议你不用中断,delay的方式测试下看看

对的   我在中断里面调用的写入函数,定时器中断,1s写一次
回复

使用道具 举报

4

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2020-10-27
在线时间
16 小时
 楼主| 发表于 2021-6-23 10:24:43 | 显示全部楼层
本帖最后由 15851921656 于 2021-6-23 16:26 编辑
正点原子 发表于 2021-6-23 01:40
你在中断里面调用fatfs写入数据么? fatfs操作时间是不固定的哦,建议你不用中断,delay的方式测试下看看

原子哥   我放在主循环里试了一下,崩了    我是在定时器里改变一个数字,在主函数里判断数字变化的时候写入,结果就这样了,外面显示NANDFLASH中有内容,而打开却是空的而且盘符还变成U盘了   愁死了   原子哥  帮忙解决一下呗  非常感谢


不好意思原子哥,这种情况可能是我程序里写格式化NANDFLASH造成的,也可能是我用电脑格式化的时候造成的,现在还没解决
现在保存的东西也一关机就都不见了  有解决方法吗?

捕获.PNG
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2021-6-24 01:34:09 | 显示全部楼层
15851921656 发表于 2021-6-23 10:24
原子哥   我放在主循环里试了一下,崩了    我是在定时器里改变一个数字,在主函数里判断数字变化的时 ...

你这是写到nand里面哦,我以为你写SD卡呢
你试试写SD卡看看?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

4

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2020-10-27
在线时间
16 小时
 楼主| 发表于 2021-6-24 08:44:20 | 显示全部楼层
正点原子 发表于 2021-6-24 01:34
你这是写到nand里面哦,我以为你写SD卡呢
你试试写SD卡看看?

嗯嗯,我是写在NAND里的,没有SD卡,现在只有NAND。我放在主循环里判断数字改变去写文件,现在好了,但是可能是因为我在主程序中用了一下f_mkfs("2:",1,4096);格式化了一下NANDFLASH就变得显示总容量是对的,剩余容量不对,就像上面图中那样的,里面其实是没有东西的,就算是我开机的时候往里面写了东西,关机再开机的时候他也就没有了  不明白为什么,程序已经改回最初的时候了,这个现象还是没好,不明白为什么


回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2021-6-25 01:34:29 | 显示全部楼层
15851921656 发表于 2021-6-24 08:44
嗯嗯,我是写在NAND里的,没有SD卡,现在只有NAND。我放在主循环里判断数字改变去写文件,现在好了,但是 ...

全篇擦除了么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

4

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2020-10-27
在线时间
16 小时
 楼主| 发表于 2021-6-25 10:37:47 | 显示全部楼层

f_mkfs("2:",1,4096);这个函数是全片擦除的函数吗?原子哥,我就算还是新手,请见谅,不太清楚怎么全片擦除,我知道这个是用来格式化的。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2021-6-26 01:14:26 | 显示全部楼层
15851921656 发表于 2021-6-25 10:37
f_mkfs("2:",1,4096);这个函数是全片擦除的函数吗?原子哥,我就算还是新手,请见谅,不太清 ...

不是,全片擦除函数在nand.c里面
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

4

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2020-10-27
在线时间
16 小时
 楼主| 发表于 2021-7-9 13:31:37 | 显示全部楼层
正点原子 发表于 2021-6-26 01:14
不是,全片擦除函数在nand.c里面

全片擦除了一下,问题解决了,感谢原子哥。
回复

使用道具 举报

4

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2020-10-27
在线时间
16 小时
 楼主| 发表于 2021-7-9 13:42:31 | 显示全部楼层
15851921656 发表于 2021-7-9 13:31
全片擦除了一下,问题解决了,感谢原子哥。

又遇到个问题,原子哥。
我用按键来写文件,按键里写一次的时候没问题,可以写成功
当我在一个按键按下时写两次数据,在写第二次的时候就死机了,第二次没写成功,第一次写成功了,为什么啊  

单次每次写一次数据

单次每次写一次数据

单次每次写两次数据

单次每次写两次数据
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2021-7-10 01:53:55 | 显示全部楼层
15851921656 发表于 2021-7-9 13:42
又遇到个问题,原子哥。
我用按键来写文件,按键里写一次的时候没问题,可以写成功
当我在一个按键按下 ...

得仿真找下问题,另外,你用的什么MCU
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

4

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2020-10-27
在线时间
16 小时
 楼主| 发表于 2021-7-13 08:44:33 | 显示全部楼层
正点原子 发表于 2021-7-10 01:53
得仿真找下问题,另外,你用的什么MCU

不太会仿真找问题,原子哥,因为我还算是新手,我用的MCU是STM32F429
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2021-7-14 02:50:04 | 显示全部楼层
15851921656 发表于 2021-7-13 08:44
不太会仿真找问题,原子哥,因为我还算是新手,我用的MCU是STM32F429

学习下,这个是必备技能
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

4

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2020-10-27
在线时间
16 小时
 楼主| 发表于 2021-7-14 09:21:38 | 显示全部楼层
正点原子 发表于 2021-7-14 02:50
学习下,这个是必备技能

有相关的教程链接吗,原子哥,或者是文章
回复

使用道具 举报

4

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2020-10-27
在线时间
16 小时
 楼主| 发表于 2021-7-14 11:46:13 | 显示全部楼层
正点原子 发表于 2021-7-14 02:50
学习下,这个是必备技能

原子哥,我刚发现不是我说的那样的,自从听您的格式化完NANDFLASH之后,每次写入都死机,而不是单个按键写两次就死机,刚才试了试单个按键写一次数据的也死机,应该是格式化完就这样了,什么原因啊,原子哥。
回复

使用道具 举报

4

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2020-10-27
在线时间
16 小时
 楼主| 发表于 2021-7-14 13:41:07 | 显示全部楼层
正点原子 发表于 2021-7-14 02:50
学习下,这个是必备技能

不好意思,原子哥,找到问题了,应该是我用的一个数组太小了,越界了导致的。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-8 11:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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