久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> STM32 >> 瀏覽文章

Rainbow讀寫TF卡中的文件

作者:白櫟旸   來源:本站原創   點擊數:  更新時間:2014年04月30日   【字體:

    Rainbow板載一個TF卡的卡座,可以直接插入TF卡。Rainbow成功移植了Fatfs文件系統,可以直接使用Fatfs的函數對文件進行讀寫,同時,為了簡化對文件的操作,開發包中封裝了對文件讀寫類庫,可以更加方便對文件進行讀寫。


    考慮到嵌入式系統的特點,文件系統有一些小的限制:
    1、文件名長度最大不超過8個字符,后綴名不超過3個字符
    2、不支持中文文件名
 
    Rainbow采用C++對fatfs進行了封裝,對文件讀寫變得更加簡單,我們看看文件讀寫的步驟:
    1、定義FileStream對象:FileStream file(fileName, FA_OPEN_ALWAYS | FA_WRITE);
       在定義的時候需要指定要打開的文件全路徑以及文件打開的方式,以寫的方式打開文件,如果文件不存在,會產生異常,需要加上FA_OPEN_ALWAYS,FA_WRITE表示以寫的方式打開,FA_READ表示已讀的方式打開文件
 
    2、可以通過if(file)來判斷文件是否打開成功,如果打開成功,if條件成立
 
    3、如果文件打開成功,接下來就可以調用
       file.write((uint8_t *)Write_Buffer, BUFFER_SIZE)或者
       file.read((uint8_t *)Read_Buffer, BUFFER_SIZE)
       來對文件進行讀寫操作
 
    4、文件讀寫完畢,調用file.close()關閉文件
 
    在軟件包的“Projects\File”文件夾包含了本文的完整工程,可以直接編譯、燒寫和調試。這個程序主要展示如何對TF中文件進行讀寫,看看main.cpp的代碼:
#include "WProgram.h"
#include "File.h"
 
#define countof(a) (sizeof(a) / sizeof(*(a)))
#define BUFFER_SIZE (countof(Write_Buffer)-1)
 
uint8_t Write_Buffer[] = "STM32F10xx Fatfs Demo";
uint8_t Read_Buffer[BUFFER_SIZE];
 
int main()
{
  boardInit();
  Serial.begin();
  Serial.println("Fatfs demo start...");
 
  //讀寫TF卡的根目錄中的demo.txt
  String fileName = "/demo.txt";
  //以寫的方式打開一個文件,寫入字符串
  //為了測試完整的讀寫過程,我們沒有以讀寫方式打開文件,而是先以寫的方式打開,然后關閉,然后再以讀的方式打開讀取寫入內容
  FileStream file_w(fileName, FA_OPEN_ALWAYS | FA_WRITE);
  if(file_w)
  {
    if(file_w.write((uint8_t *)Write_Buffer, BUFFER_SIZE) == BUFFER_SIZE)
    {
      Serial.print("Write \"");
      Serial.print((char *)Write_Buffer);
      Serial.println("\" to demo.txt ... ");
    }
  }
 
  //寫入完畢,關閉文件
  file_w.close();
  //以讀的方式打開demo.txt
  FileStream file_r(fileName, FA_READ);
  if(file_r)
  {
    if(file_r.read((uint8_t *)Read_Buffer, BUFFER_SIZE) == BUFFER_SIZE)
    {
      Serial.print("Read \"");
      Serial.print((char *)Read_Buffer);
      Serial.println("\" from demo.txt ... ");
    }
  }
 
  //讀取完畢,關閉文件
  file_r.close();
  Serial.println("Fatfs demo end...");
}
 
    上面的程序編譯無誤后,將程序燒寫到Rainbow中,然后在電腦上運行串口調試工具并和Rainbow連接成功,可以在串口調試工具中看到文件讀寫的日志。將TF卡從Rainbow中取出,放到電腦上可以看到在根目錄中創建了一個demo.txt,打開demo.txt后可以看到里面保存的內容正是我們寫入的信息。
關閉窗口

相關文章

主站蜘蛛池模板: 成人毛片在线观看 | 欧美激情精品久久久久久 | 97人人超碰 | 欧洲一区二区三区 | 国产激情精品视频 | 伊人欧美视频 | 欧美一区二区三区在线看 | 亚洲国产成人在线观看 | 亚洲一区二区三区免费观看 | 欧美一级黄色片免费观看 | 欧美精品一区二区三区四区 在线 | 综合激情久久 | 亚洲国产网 | 国产精品一区在线观看 | 免费在线观看一级毛片 | 色久伊人 | 精品成人在线 | 久久国产成人 | 情侣酒店偷拍一区二区在线播放 | 国产精品免费一区二区三区 | 中文字幕免费在线 | 国产在线资源 | 91资源在线 | 久久精品国产免费一区二区三区 | 不卡av电影在线播放 | 成人免费影院 | 中文字幕人成乱码在线观看 | 成人网在线观看 | 久久在视频 | 亚洲在线| 欧美啪啪 | 久久成人一区 | 色综久久| 亚洲精品久久久一区二区三区 | 天堂成人国产精品一区 | 国产高清在线精品 | 亚洲久久久 | 日韩精品一区二区三区视频播放 | 久久精品久久精品 | 91久久精品国产免费一区 | 久久精品国产一区二区三区不卡 |