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

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> STM32 >> 瀏覽文章

Rainbow讀寫TF卡中的文件

作者:白櫟旸   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年04月30日   【字體:

    Rainbow板載一個(gè)TF卡的卡座,可以直接插入TF卡。Rainbow成功移植了Fatfs文件系統(tǒng),可以直接使用Fatfs的函數(shù)對(duì)文件進(jìn)行讀寫,同時(shí),為了簡化對(duì)文件的操作,開發(fā)包中封裝了對(duì)文件讀寫類庫,可以更加方便對(duì)文件進(jìn)行讀寫。


    考慮到嵌入式系統(tǒng)的特點(diǎn),文件系統(tǒng)有一些小的限制:
    1、文件名長度最大不超過8個(gè)字符,后綴名不超過3個(gè)字符
    2、不支持中文文件名
 
    Rainbow采用C++對(duì)fatfs進(jìn)行了封裝,對(duì)文件讀寫變得更加簡單,我們看看文件讀寫的步驟:
    1、定義FileStream對(duì)象:FileStream file(fileName, FA_OPEN_ALWAYS | FA_WRITE);
       在定義的時(shí)候需要指定要打開的文件全路徑以及文件打開的方式,以寫的方式打開文件,如果文件不存在,會(huì)產(chǎn)生異常,需要加上FA_OPEN_ALWAYS,F(xiàn)A_WRITE表示以寫的方式打開,F(xiàn)A_READ表示已讀的方式打開文件
 
    2、可以通過if(file)來判斷文件是否打開成功,如果打開成功,if條件成立
 
    3、如果文件打開成功,接下來就可以調(diào)用
       file.write((uint8_t *)Write_Buffer, BUFFER_SIZE)或者
       file.read((uint8_t *)Read_Buffer, BUFFER_SIZE)
       來對(duì)文件進(jìn)行讀寫操作
 
    4、文件讀寫完畢,調(diào)用file.close()關(guān)閉文件
 
    在軟件包的“Projects\File”文件夾包含了本文的完整工程,可以直接編譯、燒寫和調(diào)試。這個(gè)程序主要展示如何對(duì)TF中文件進(jìn)行讀寫,看看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";
  //以寫的方式打開一個(gè)文件,寫入字符串
  //為了測試完整的讀寫過程,我們沒有以讀寫方式打開文件,而是先以寫的方式打開,然后關(guān)閉,然后再以讀的方式打開讀取寫入內(nèi)容
  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 ... ");
    }
  }
 
  //寫入完畢,關(guān)閉文件
  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 ... ");
    }
  }
 
  //讀取完畢,關(guān)閉文件
  file_r.close();
  Serial.println("Fatfs demo end...");
}
 
    上面的程序編譯無誤后,將程序燒寫到Rainbow中,然后在電腦上運(yùn)行串口調(diào)試工具并和Rainbow連接成功,可以在串口調(diào)試工具中看到文件讀寫的日志。將TF卡從Rainbow中取出,放到電腦上可以看到在根目錄中創(chuàng)建了一個(gè)demo.txt,打開demo.txt后可以看到里面保存的內(nèi)容正是我們寫入的信息。
關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 国产一区二区毛片 | 久久久久久一区 | 丝袜美腿一区二区三区动态图 | 亚洲美女一区二区三区 | 国产亚洲精品久久久久动 | 国产一区二区三区四区五区加勒比 | 国产欧美综合在线 | 日本中文字幕日韩精品免费 | 国产成人免费视频网站高清观看视频 | 亚洲第一色站 | 国产成人精品免费视频大全最热 | 在线观看亚洲 | 一区二区三区国产 | 久久午夜剧场 | 成人在线观看中文字幕 | 久久一二 | 国产清纯白嫩初高生视频在线观看 | 日本不卡一区二区三区在线观看 | 欧美成人免费在线视频 | 蜜桃精品视频在线 | 粉嫩一区二区三区四区公司1 | 久久99网| 色婷婷在线视频 | 久久69精品久久久久久久电影好 | 日日操操 | 超碰在线久 | 久久久久久www | 国产欧美精品一区二区 | 国产精品区二区三区日本 | 久久av网| av看片| 欧美男人天堂 | 一级片在线免费播放 | 成年人免费看 | 亚洲国产一区二区三区在线观看 | 国产一区二区在线视频 | 日韩欧美在线不卡 | 国产一在线观看 | 伊人久久大香线 | 在线视频亚洲 | 久久精品国产一区二区电影 |