打印
[STM32F4]

fatfs系统无法顺利创建文件和文件夹

[复制链接]
623|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
songqian17|  楼主 | 2023-2-12 13:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
fatfs系统无法顺利创建文件和文件夹

使用特权

评论回复
沙发
jlyuan| | 2023-2-17 18:28 | 只看该作者
这个信息太笼统了    是到哪一步    返回什么错误   一点信息都没有  怎么去判定

使用特权

评论回复
板凳
songqian17|  楼主 | 2023-2-17 18:30 | 只看该作者
本帖最后由 songqian17 于 2023-2-17 18:33 编辑

我把程序贴下

使用特权

评论回复
地板
songqian17|  楼主 | 2023-2-17 18:32 | 只看该作者
<div class="blockcode"><blockquote> pdir[0]='\0';
                                                ptxt[0]='\0';
                                                sprintf((char*)pdir,"0:DATA%02d",dirnum);
                                                sprintf((char*)ptxt,"0:DATA%02d/%02d.txt",dirnum,txtnum);
                                                                f_mkdir((const TCHAR*)pdir);
                                                          f_opendir(&dir, (const TCHAR*)pdir);
                                                                res= f_open(&MyFile, (const TCHAR*)ptxt,FA_OPEN_ALWAYS | FA_WRITE);
                                                                bytesWritten=MyFile.fsize;
                                                                res=f_lseek(&MyFile,bytesWritten);
                                                                res= f_write (&MyFile, adcx, sizeof(adcx), (void *)&bytesWritten);
                                                                res=f_close(&MyFile);
                                                dirnum++;
                                                txtnum++;

使用特权

评论回复
5
songqian17|  楼主 | 2023-2-17 18:35 | 只看该作者
运行程序后无法创建文件和文件夹,不知道我哪个地方写的有问题。但是如果不使用字符串变量,直接创建指定的文件夹和文件就没有问题

使用特权

评论回复
6
juventus9554| | 2023-2-17 18:36 | 只看该作者
是不是,读写也不行啊,看看底层的驱动搞定没。

使用特权

评论回复
7
xxrs| | 2023-2-17 18:40 | 只看该作者
就是直接执行读写指令的函数。

使用特权

评论回复
8
renyaq| | 2023-2-17 18:41 | 只看该作者
没有移植对吧

使用特权

评论回复
9
songqian17|  楼主 | 2023-2-17 18:44 | 只看该作者

  f_mkdir(“0:DATA”);
                                                          f_opendir(&dir,(“0:DATA”);
                                                           res= f_open(&MyFile, “0:DATA/data.txt”,FA_OPEN_ALWAYS | FA_WRITE);
                                                                bytesWritten=MyFile.fsize;
                                                                res=f_lseek(&MyFile,bytesWritten);
                                                                res= f_write (&MyFile, adcx, sizeof(adcx), (void *)&bytesWritten);
                                                                res=f_close(&MyFile);
这样运行是没有问题的,但是如果我想像帖子开头一样使用字符串变量,想不停创建不同名字的文件,就无法运行

使用特权

评论回复
10
tian111| | 2023-2-17 18:46 | 只看该作者
f_mkdir( "0 : DATA" );
  f_opendir( &dir, "0:DATA" );
  res = f_open( &MyFile, "0:DATA/data.txt", FA_OPEN_ALWAYS | FA_WRITE );
  bytesWritten = MyFile.fsize;
  res = f_lseek( &MyFile, bytesWritten );
  res = f_write( &MyFile, adcx, sizeof( adcx ), ( void * ) &bytesWritten );
  res = f_close( &MyFile );

使用特权

评论回复
11
huangchui| | 2023-2-17 18:48 | 只看该作者
pdir[ 0 ] = '\0';
  ptxt[ 0 ] = '\0';
  sprintf( ( char * ) pdir, "0:DATA%02d", dirnum );
  sprintf( ( char * ) ptxt, "0:DATA%02d/%02d.txt", dirnum, txtnum );

  f_mkdir( ( const TCHAR * ) pdir );
  f_opendir( &dir, ( const TCHAR * ) pdir );
  res = f_open( &MyFile, ( const TCHAR * ) ptxt, FA_OPEN_ALWAYS | FA_WRITE );
  bytesWritten = MyFile.fsize;
  res = f_lseek( &MyFile, bytesWritten );
  res = f_write( &MyFile, adcx, sizeof( adcx ), ( void * ) &bytesWritten );
  res = f_close( &MyFile );

  dirnum++;
  txtnum++;
似乎是文件名出了问题,可以下个断点,调试一下看看文件名是什么。

使用特权

评论回复
12
songqian17|  楼主 | 2023-2-17 18:50 | 只看该作者

我觉着是不是pdir和ptxt的使用方法不对,附上相关定义代码,能感觉出来是这部分的问题,但不知道怎么错的

使用特权

评论回复
13
songqian17|  楼主 | 2023-2-17 18:50 | 只看该作者
uint16_t *pdir=0;
uint16_t *ptxt=0;
uint16_t dirnum=0;
uint16_t txtnum=0;
uint16_t wnum=0;

使用特权

评论回复
14
songqian17|  楼主 | 2023-2-17 18:50 | 只看该作者
我设置了断点观察现象,一旦我使用ptxt这种方式出现的现象是U盘没有挂载上

使用特权

评论回复
15
tian111| | 2023-2-17 18:52 | 只看该作者
不太了解这方面

使用特权

评论回复
16
llljh| | 2023-2-17 18:53 | 只看该作者
看看 顺便了解下

使用特权

评论回复
17
huangchui| | 2023-2-17 18:54 | 只看该作者
在哪里碰见的什么问题啊

使用特权

评论回复
18
pengf| | 2023-2-17 18:55 | 只看该作者
指针操作还是挺有难度的

使用特权

评论回复
19
huwr| | 2023-2-17 18:56 | 只看该作者
目前还没有进行过文件系统的操作

使用特权

评论回复
20
llljh| | 2023-2-17 18:58 | 只看该作者
每次的现象都一样吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

463

主题

5749

帖子

1

粉丝