source\FatFs\fftest.h.c__测试FAT文件系统

/****测试FAT文件系统****/
/*****************************************************************************************
文件:fftest.h
函数功能:测试FAT文件系统
/****************************************************************************************/
#ifndef __FFTEST_H_
#define __FFTEST_H_
#include "ff.h"
//****************************************************************************************
    void fftest(void);
    FRESULT FileRead(const TCHAR *fileName, uint8 *buf);
    FRESULT FileWrite(const TCHAR *fileName,const uint8 *buffer);
//****************************************************************************************
#endif

/*****************************************************************************************
文件:fftest.c
函数功能:测试FAT文件系统
/****************************************************************************************/
#include "integer.h"
#include "fftest.h"  //#include "source\FatFs\fftest.h"
/*****************************************************************************************
函数功能:测试函数
/****************************************************************************************/
void fftest(void)
{
    char *a = "abcdefghijklmnopqrstuvxyz";
    char b[200];
    FATFS fs;               //文件系统

    //为了格式化系统。格式化一次后就不需要再次格式化了
    f_mount(0,&fs);
    f_mkfs (0,0,0);
    f_mount(0,0);

    FileWrite("0:123.txt",a);
    FileRead("0:123.txt",b);
}
/*****************************************************************************************
函数功能:写文件
入口参数:fileName:要写入的文件名或要创建的文件名
           buffer: 要写入的数据存放数据
出口参数:0:成功    1:失败
/****************************************************************************************/
FRESULT FileWrite(const TCHAR *fileName,const uint8 *buffer)
{
    FATFS fs;               //文件系统
    FIL file;               //文件
    UINT  bw;               //数据字节数

    f_mount(0, &fs);        //挂载文件系统
    //给文件中写入数据,如果没有该文件,创建一个名为*fileName的文件,并写入数据
    if(f_open(&file, fileName, FA_CREATE_ALWAYS|FA_WRITE))
    {
        return FR_NO_FILE;
    }else
    {
        do
        {
            if(f_write(&file, buffer, 512, &bw))
            {
                return FR_NO_FILE;
            }
        } while (bw < 512); //判断是否读完(bw = 512,表示写入完成)
        f_close(&file);     //关闭文件,必须和f_open函数成对出现
    }
    f_mount(0, 0);          //卸载文件系统
    return FR_OK;
}

/*****************************************************************************************
函数功能:读文件
入口参数:fileName:要读取的文件名
           buf: 要读取的数据存放数组
出口参数:0:成功    1:失败
*****************************************************************************************/
FRESULT FileRead(const TCHAR *fileName, uint8 *buf)
{
    FATFS fs;               //建立一个文件系统
    FIL file;               //暂存文件
    UINT  br;               //字节计数器
    FRESULT res;            //存储函数执行结果

    f_mount(0,&fs);         //加载文件系统
    res = f_open(&file, fileName, FA_OPEN_EXISTING|FA_READ); // 打开文件
    if(res != FR_OK)        //如果没有正确打开文件
    {
        return res;         //返回错误报告
    }else                   //如果打开了文件
    {
        do
        {   // 读取文件内容,每次512个字节
            f_read(&file, buf, 512, &br);
        }while(br);         //br =  0 表示读完了数据
    }
    f_close(&file);         //关闭文件,必须和f_open函数成对出现
    f_mount(0,0);           //卸载文件系统
    return FR_OK;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值