OpenEdv-开源电子网

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

SD卡以及FATFA的文件命名问题

[复制链接]

20

主题

81

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1180
金钱
1180
注册时间
2018-9-11
在线时间
132 小时
发表于 2019-6-17 09:48:03 | 显示全部楼层 |阅读模式
20金钱
最近在弄SD卡以及FATFS文件系统,碰到了一点问题想来请教一下各位大神。
1、SD卡文件命名
     因为我想根据实际情况不同来命名不同的文件名,
     我用的是这个函数:f_open (&fil,file_name, FA_WRITE | FA_CREATE_NEW);
函数原型是:
FRESULT f_open (
        FIL* fp,                        /* Pointer to the blank file object */
        const TCHAR* path,        /* Pointer to the file name */
        BYTE mode                        /* Access mode and file open mode flags */
)

file_name我用了一个字符数组来表示,如果是固定字符串的话每次的文件名就都是一样的了。
        char file_name[10];
        file_name[0]='0';
        file_name[1]=':';
        file_name[2]='/';
        file_name[3]=(char)name;
        file_name[4]='2';
        file_name[5]='.';       
        file_name[6]='t';
        file_name[7]='x';
        file_name[8]='t';

运行的时候返回值为6,创建文件失败。

大神们帮我看看,是哪里出错了。。。

还有,我在挂在SD卡的时候也经常性报错,
res_mount=f_mount(&sd_fs,"0:",1);                                
printf("\r\nf_mount res=%d\r\n\r\n",res_mount);


返回值为3,应该是物理性错误。
但有时候能挂载成功,有时候又挂载不上,是不是物理硬件方面接触不良导致了?

最佳答案

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

我找到问题出在哪了。是我给变量赋值的时候有问题,当我把int型强转成char型的时候,int型的值就成了ASCII码的十进制数,对应成字符是一个文件命名的非法字符,所以创建文件一直不成功。我把int变量换成49 即对应字符‘1’的时候,创建就可以了!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

20

主题

81

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1180
金钱
1180
注册时间
2018-9-11
在线时间
132 小时
 楼主| 发表于 2019-6-17 09:48:04 | 显示全部楼层
我找到问题出在哪了。是我给变量赋值的时候有问题,当我把int型强转成char型的时候,int型的值就成了ASCII码的十进制数,对应成字符是一个文件命名的非法字符,所以创建文件一直不成功。我把int变量换成49  即对应字符‘1’的时候,创建就可以了!
回复

使用道具 举报

20

主题

81

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1180
金钱
1180
注册时间
2018-9-11
在线时间
132 小时
 楼主| 发表于 2019-6-17 16:53:58 | 显示全部楼层
自己顶一下~~
回复

使用道具 举报

0

主题

286

帖子

0

精华

高级会员

Rank: 4

积分
950
金钱
950
注册时间
2018-4-21
在线时间
264 小时
发表于 2019-6-17 19:06:10 来自手机 | 显示全部楼层
帮顶  
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2019-6-18 02:10:49 | 显示全部楼层
1,直接给名字,可以创建OK么?   2,在file_name末尾加入数值0,再试试。
回复

使用道具 举报

20

主题

81

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1180
金钱
1180
注册时间
2018-9-11
在线时间
132 小时
 楼主| 发表于 2019-6-18 14:07:11 | 显示全部楼层
正点原子 发表于 2019-6-18 02:10
1,直接给名字,可以创建OK么?   2,在file_name末尾加入数值0,再试试。

谢谢!
我试了一下,直接给名字是可以创建的,返回值为0。  在file_name末尾加入数值0这个方法行不通,返回值还是6.
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-16 21:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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