OpenEdv-开源电子网

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

求各位大佬帮忙看下什么原因吧,FATFS系统的

[复制链接]

8

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2019-3-29
在线时间
36 小时
发表于 2019-4-12 17:30:40 | 显示全部楼层 |阅读模式
1金钱
    理想的预期目标是创建3个文件夹,每个文件夹里面4个txt文件,同时每个文件里面有一串数据,但是调试过程里面发现数据写在了文件夹名字里面,而且文件夹里面没有txt文件。
分模块测试了半天,发现有几个现象:
1.单独建立文件夹和txt文件没问题,分别是3个和4个。
2.单文件夹里面建立4个txt文件,同时每个txt里面写入一串数据,也没问题。
3.先建立文件夹和txt文件,然后注释掉,然后添加open函数和write函数写入,也没问题
4.最终发现,f_mkdir()和f_write()2个函数注释掉任意一个都可以正常运行,不过如果注释掉f_mkdir的话,得SD卡里面已经建立了文件夹。

有没有大佬知道这是什么原因,怎么修改?试过把创建文件和写数据独立,即分别执行f_open(),f_close()和f_open(),f_write(),f_close();不行,也试过循环里f_open(),f_close(),把f_open(),f_write(),f_close()丢循环外面,还是不行






QQ图片20190412171816.png
QQ图片20190412171827.png
QQ图片20190412171832.png

最佳答案

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

自己回答,原因是内存过界,f_mkdir()用法错了,要加TCHAR const*修饰。f_mkdir((TCHAR const*) xxxx)
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2019-3-29
在线时间
36 小时
 楼主| 发表于 2019-4-12 17:30:41 | 显示全部楼层
本帖最后由 L1724979351 于 2019-4-13 16:15 编辑

自己回答,原因是内存过界,f_mkdir()用法错了,要加TCHAR const*修饰。f_mkdir((TCHAR const*)  xxxx)
回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10572
金钱
10572
注册时间
2017-2-18
在线时间
1914 小时
发表于 2019-4-12 20:49:13 | 显示全部楼层
原子这边的综合测试例程可以参考,记得综合测试例程有在文件夹中新建TXT文件的功能
回复

使用道具 举报

8

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2019-3-29
在线时间
36 小时
 楼主| 发表于 2019-4-14 14:14:30 | 显示全部楼层
再更改一下,加强制转换是因为定义的数组是unsigned char 类型,改成char类型就没问题,重点是文件夹名,文件名需要以‘/0结尾’,不然就内存过节
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-10 13:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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