野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 26145|回复: 1

407开发板,例程FatFs文件系统常用函数测试问题

[复制链接]
发表于 2021-7-9 17:47:55 | 显示全部楼层 |阅读模式
本帖最后由 52240381 于 2021-7-9 17:53 编辑

一、串口显示内容如下:

******** 这是一个SPI FLASH 文件系统实验 *******
》文件系统挂载成功,可以进行测试

*************** 设备信息获取 ***************
》设备总空间:      9964 KB。
》可用空间:        9956 KB。

******** 文件定位和格式化写入功能测试 ********
》文件内容:

在原来文件新添加一行内容
》设备总空间:      9964 KB。
》可用空间:        9956 KB。


********** 目录创建和重命名功能测试 **********

*************** 文件信息获取测试 **************
“testdir.txt”文件信息:
》文件大小: 86(字节)
》时间戳: 2015/01/01, 00:00
》属性: ----A

***************** 文件扫描测试 ****************
1:/TestDir/testdir.txt

二、部分程序如下:
static FRESULT miscellaneous(void)
{
  DIR dir;
  FATFS *pfs;
  DWORD fre_clust, fre_sect, tot_sect;

  printf("\n*************** 设备信息获取 ***************\r\n");
  /* 获取设备信息和空簇大小 */
  res_flash = f_getfree("1:", &fre_clust, &pfs);

  /* 计算得到总的扇区个数和空扇区个数 */
  tot_sect = (pfs->n_fatent - 2) * pfs->csize;
  fre_sect = fre_clust * pfs->csize;

  /* 打印信息(4096 字节/扇区) */
  printf("》设备总空间:%10lu KB。\n》可用空间:  %10lu KB。\n", tot_sect *4, fre_sect *4);

  printf("\n******** 文件定位和格式化写入功能测试 ********\r\n");
  res_flash = f_open(&fnew, "1:FatFs读写测试文件.txt",
                            FA_OPEN_ALWAYS|FA_WRITE|FA_READ );
        if ( res_flash == FR_OK )
        {
    /*  文件定位 */
    res_flash = f_lseek(&fnew,f_size(&fnew));
    if (res_flash == FR_OK)
    {
      /* 格式化写入,参数格式类似printf函数 */
      f_printf(&fnew,"\n在原来文件新添加一行内容\n");
      f_printf(&fnew,"》设备总空间:%10lu KB。\n》可用空间:  %10lu KB。\n", tot_sect *4, fre_sect *4);
      /*  文件定位到文件起始位置 */
      res_flash = f_lseek(&fnew,0);
      /* 读取文件所有内容到缓存区 */
      res_flash = f_read(&fnew,readbuffer,f_size(&fnew),&fnum);
      if(res_flash == FR_OK)
      {
        printf("》文件内容:\n%s\n",readbuffer);
      }
    }
    f_close(&fnew);   

    printf("\n********** 目录创建和重命名功能测试 **********\r\n");
    /* 尝试打开目录 */
    res_flash=f_opendir(&dir,"1:TestDir");
    if(res_flash!=FR_OK)
    {
      /* 打开目录失败,就创建目录 */
      res_flash=f_mkdir("1:TestDir");
    }
    else
    {
      /* 如果目录已经存在,关闭它 */
      res_flash=f_closedir(&dir);
      /* 删除文件 */
      f_unlink("1:TestDir/testdir.txt");
    }
    if(res_flash==FR_OK)
    {
      /* 重命名并移动文件 */
      res_flash=f_rename("1:FatFs读写测试文件.txt","1:TestDir/testdir.txt");      
    }
        }
  else
  {
    printf("!! 打开文件失败:%d\n",res_flash);
    printf("!! 或许需要再次运行“FatFs移植与读写测试”工程\n");
  }
  return res_flash;
}

三、问题
1、文件定位和格式化写入功能测试环节中,按照程序,文件内容应该在设备总空间和可用空间后出现才对,为什么出现在了前面?
2、文件内容没有显示,是readbuffer里没有内容吗?
回复

使用道具 举报

 楼主| 发表于 2021-7-9 17:51:56 | 显示全部楼层
本帖最后由 52240381 于 2021-7-9 17:54 编辑

谢谢各位
回复

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 12:26 , Processed in 0.031197 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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