请教,关于FX操作NorFlash读写文件顺序的问题
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 ?
楼主的意思是这个文件存在,也要先Create才可以? 我没去确认文件是否真的已经存在,,,即便是不存在,第一次OPEN的时候会跳到if(status != FX_SUCCESS)里去Create,而且我有查看Create状态是成功的。但第二次运行到这里时还是OPEN出错。 但是,只有把Create函数提出来放到OPEN前面执行,就不会有问题了,每次都能OPEN成功。 天马行空 发表于 2022-2-23 17:50
我没去确认文件是否真的已经存在,,,即便是不存在,第一次OPEN的时候会跳到if(status != FX_SUCCESS)里去 ...
那不应该,这个我测试过,不过我是SD卡上用的。正常的。
页:
[1]