Fork me on GitHub

随笔 - 997  文章 - 5  评论 - 181  阅读 - 300万 
一 问题
最近使用到了文件系统的读写,中间遇到了一些问题值得深思。
 
二 源码解析
创建文件:
复制代码
  FRESULT res;

  do
  {
    sprintf(filename,"/sensor_signal/sensor_%d.bin",file_num++);
    mprintf("filename is:%s \n\r",filename);

    res=f_open(&file, filename, FA_CREATE_NEW  | FA_WRITE);
  }while(res!=FR_OK);
复制代码

写文件:

复制代码
    for (uint i = 0; i < 255; i++)
    {
      /* code */
      memset(TF_Buffer,i,TF_Buffer_Size);
      f_write( &file,  TF_Buffer ,   TF_Buffer_Size,   &bw);
      osDelay(20);
    }
    
    f_close(&file);
复制代码

读文件:

复制代码
    res=f_open(&file, filename, FA_READ);
    while (1)
    {
      /* code */
      memset(TF_Buffer,0x00,TF_Buffer——Size);
      osDelay(200);

      FRESULT res = f_read( &file,  TF_Buffer , TF_Buffer_Size,   &bw);
      if(bw < 1)
      {
        mprintf("file read over \n\r");
        break;
      }
      else
      {

      }
      mprintf("file read len is:%d \n\r",bw);

      dump8(TF_Buffer,40);
      osDelay(200);

    }
复制代码
三 总结
A.文件执行了
f_close(&file);
才会被存储到sd卡中。
B 读文件只能从sd卡中读,无法从缓存中读取。
posted on   虚生  阅读(153)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示