STM32 FATFS文件系统按行读取SD卡数据

STM32 FATFS文件系统按行读取SD卡数据

f_gets()

查阅FATFS的使用说明书找到了f_ges()这个函数,该函数是 f_read()的封装函数,读操作一直持续直到存储一个’\n’字符。我们可以使用它识别数据中的换行符。该函数的解释说明及示例如下:
在这里插入图片描述

f_tell()

该函数可获取文件的当前指针位置相对于文件首地址的偏移字节数。该函数在说明书中没找到,在程序中的用法如下:
f_tell(&fileobj);

f_lseek()

该函数可移动文件的读写指针。该函数的解释说明及示例如下:
在这里插入图片描述

FATFS按行读取

首先使用f_gets()函数读取数据,读到换行符’\n’字符便停止;
然后使用f_tell()函数获取当前的指针位置;
最后使用f_lseek()移动指针到新的读取位置。
三个函数结合使用,就能实现SD卡文件的按行读取了。
实现代码如下:
下面展示一些 内联代码片

static void read_file(int locate,int readsize)
{
	static char fdatas[100];
	static int tempLocate;
	fr = f_open(&fileobj,"0:/DATA/testfile.txt",FA_OPEN_EXISTING|FA_READ );//打开读取文件
	if(fr==FR_OK)
    {	
		memset(fdatas,0,sizeof(fdatas));
		while(tempLocate<sizeof(fileobj))
		{
			f_gets(fdatas,readsize,&fileobj);
			printf("fdatas is:%s\r\n",fdatas);
		
			tempLocate=f_tell(&fileobj);
			printf("locate is%d\r\n",tempLocate);
		
			f_lseek(&fileobj, tempLocate);  
			memset(fdatas,0,sizeof(fdatas));
		}
	}
	f_sync(&fileobj);
}

要逐行读取的txt文件:
在这里插入图片描述实现效果如下:
在这里插入图片描述

  • 9
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值