硬汉嵌入式论坛

 找回密码
 立即注册
查看: 833|回复: 4
收起左侧

[FileX] 请教,关于FX操作NorFlash读写文件顺序的问题

[复制链接]

79

主题

191

回帖

428

积分

高级会员

积分
428
发表于 2022-2-23 16:06:17 | 显示全部楼层 |阅读模式
ST官方LX例程读写Nor flash的操作步骤如下,这样没问题
fx_file_create(&nor_disk, "test.txt");
fx_file_open(&nor_disk, &fx_file, "test.txt", FX_OPEN_FOR_READ);
fx_file_read(&fx_file,&readbuf, sizeof(readbuf), &bytes_read);
fx_file_close(&fx_file);


我调换了顺序,先打开某个文件,如果打开失败视为无此文件,然后再创建此文件。实际测试发现此方法不行,每次都是fx_file_open失败,返回值04。
每次都进入(status != FX_SUCCESS)里创建一次文件,如此反复运行都是这样。
status = fx_file_open(&nor_disk, &fx_file, "test.txt", FX_OPEN_FOR_READ);
if(status != FX_SUCCESS)
{
  status = fx_file_create(&nor_disk, "test.txt");//每次创建文件函数返回值都为0,说明文件被创建了。
  status = fx_file_open(&nor_disk, &fx_file, "test.txt", FX_OPEN_FOR_READ);
  status = fx_file_read(&fx_file,&readbuf, sizeof(readbuf), &bytes_read);
  status = fx_file_close(&fx_file);
}
else
     {
        status = fx_file_read(&fx_file,&readbuf, sizeof(readbuf), &bytes_read);
        status = fx_file_close(&fx_file);
     }


难道FX文件系统在读写某个未知文件时,首先必须要create,然后再open ? 不能先open失败后再crete ?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
发表于 2022-2-23 16:28:16 | 显示全部楼层
楼主的意思是这个文件存在,也要先Create才可以?
回复

使用道具 举报

79

主题

191

回帖

428

积分

高级会员

积分
428
 楼主| 发表于 2022-2-23 17:50:33 | 显示全部楼层
我没去确认文件是否真的已经存在,,,即便是不存在,第一次OPEN的时候会跳到if(status != FX_SUCCESS)里去Create,而且我有查看Create状态是成功的。但第二次运行到这里时还是OPEN出错。
回复

使用道具 举报

79

主题

191

回帖

428

积分

高级会员

积分
428
 楼主| 发表于 2022-2-23 17:52:28 | 显示全部楼层
但是,只有把Create函数提出来放到OPEN前面执行,就不会有问题了,每次都能OPEN成功。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
发表于 2022-2-23 21:25:11 | 显示全部楼层
天马行空 发表于 2022-2-23 17:50
我没去确认文件是否真的已经存在,,,即便是不存在,第一次OPEN的时候会跳到if(status != FX_SUCCESS)里去 ...

那不应该,这个我测试过,不过我是SD卡上用的。正常的。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 01:25 , Processed in 0.269893 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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