FATFS文件系统读写案例

FATFS文件系统读写案例,亲测有效

自己 本来想写一个stm32移植FATFS文件系统进行存取数据
但网上能够参照的实例,实在太少,而且出现的问题还挺多
于是花费了很长一段时间才将读写问题解决

希望能够对一些想要进行FATFS的操作的小伙伴有一定的帮助

代码如下

FIL fw;
FRESULT res;
struct Struct_Pack Pack_Fram[5] = {'0',"----",'1',"----",'2',"----",'3',"----",'4',"----"};

void CreatPackFile(struct Struct_Pack *dat)
{

	u8 i = 0,j = 0;
	UINT  br;
	char p[1024];
	
		printf("Strart");
	res = f_open(file,"0:pack.txt",FA_OPEN_ALWAYS | FA_READ | FA_WRITE);
	if(res == FR_OK)
	{
		printf("OK");
		//指针往后移
		f_lseek(file,0);
		//获取数据
		res = f_read(file,p,sizeof(p),&br);
		
		if(res == FR_OK)
		{
			if(p[0] != '\0')
			{
				for(i = 0; i < 5; i++)
				{
					dat[i].num = p[i * 5];
					for(j = 0; j < 5; j++)
					{
						dat[i].getNum[j] = p[i * 5 + j + 1];
					}
				}
			}
		}
		
		f_close(file);
	}
	else
	{
		printf("Err");
	}

}

void SavaData(struct Struct_Pack *dat)
{
	UINT  bw;
	char write_buff[1024];
	u8 i,j;
	
	for(i = 0; i < 5; i++)
	{
		write_buff[i * 5] = dat[i].num;
		for(j = 0; j < 5; j++)
		{
			write_buff[i * 5 + j + 1] = dat[i].getNum[j];
		}
	}
	write_buff[25] = '\0';
	res = f_open(&fw,"0:pack.txt",FA_OPEN_EXISTING | FA_READ | FA_WRITE);

	if(res == FR_OK)
	{
		f_lseek(&fw,0);
		res = f_write(&fw,write_buff,sizeof(write_buff),&bw);	
		if(res == FR_OK)
		{
			printf("保存成功\r\n");
		}
		else
		{
			printf("保存失败%d\r\n",res);
		}
		f_close(&fw);
	}
	else
	{
		printf("打开失败\r\n");
	}

}


最后强调两个问题
读写缓冲区read_buffer write_buffer不要随意设置(否则文件必读写不了)
FIL要一定设置成全局变量(否则程序必跑飞)

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
FAT是一个常见的文件系统,全称为FAT File System(FAT文件系统)。FAT 文件系统是一种在DOS 和Windows操作系统中常用的文件系统,最初是由Microsoft开发的。FATFS是基于FAT文件系统的一个轻量级的文件系统库,它是由野火团队进行开发的,用于嵌入式系统。 FATFS源码是指FATFS文件系统库的源代码。FATFS的源码可以通过互联网获得,并且是开源的。在嵌入式系统中,我们可以使用FATFS库来实现文件读写、创建、删除等操作。使用FATFS可以使嵌入式系统能够将数据以文件的形式进行存储,并能够轻松地对文件进行管理。 FATFS源码是由C语言编写的,它提供了一些API函数用于文件系统的操作。常见的函数包括打开文件、关闭文件、读取文件数据、写入文件数据、删除文件等。通过调用这些API函数,开发者可以方便地在嵌入式系统中使用FATFS进行文件操作。 FATFS采用了FAT12、FAT16或FAT32的文件系统结构,支持长文件名、短文件名、目录结构等。它通过读取文件系统映像来初始化文件系统,并将文件系统信息保存在内存中,以便后续的文件操作。FATFS也提供了缓冲区管理等功能,以提高文件读写的效率。 总的来说,FATFS源码是一个轻量级的文件系统库,可以方便地用于嵌入式系统中。开发者可以通过研究FATFS的源码,了解文件系统的实现原理,并在自己的嵌入式系统中使用FATFS进行文件管理。这对于开发嵌入式系统中的文件存储和管理模块非常有帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值