因为存为TXT可以实现,但是读取TXT里边的数据总是不尽如人意,所以,最终存为bin文件了。

先摘几个观点:

http://www.openedv.com/posts/list/36712.htm “文本文件存储的都是ASCII内容,如果你以16进制格式显示出来,那就是ASCII的内码。”

http://www.openedv.com/posts/list/58089.htm“ 你这种不要存.txt了,直接存.bin就是了。你先学会存一个字节数据,... ”

stm32 Fatfs 读写SD卡(http://www.ichanging.org/stm32-fatfs-sd.html)

f_open(http://elm-chan.org/fsw/ff/en/open.html)

实现的部分代码(读写bin文件)(其他可以借鉴 原子的FATFS相关实例等 http://www.openedv.com/forums/show/0/2/0/55.htm)

u32 sd_size;
FIL file;
FRESULT res;
UINT bw;
UINT br;//ʵ¼Ê¶ÁÈ¡µ½µÄ×Ö½ÚÊý
// SD ¿¨
while(SD_Initialize())//¼ì²â²»µ½SD¿¨
{ //LCD_ShowString(60,170,200,16,16,"SD Card Error!");
printf("\r\nSD Card Error!\r\n");
delay_ms(500);
//LCD_ShowString(60,170,200,16,16,"Please Check! ");
printf("\r\nSD Card Error!\r\n");
delay_ms(500);
}
printf("\r\nSD Card OKr\n");
printf("\r\nSD Card Size: MB\r\n");
sd_size=SD_GetSectorCount();//µÃµ½ÉÈÇøÊý
printf("\r\nsd_size:%d\r\n",sd_size);
f_mount(fs[0],"0:",1); //¹ÒÔØSD¿¨ res=f_open(&file,"0:/Test.bin",FA_CREATE_ALWAYS | FA_WRITE );
if(res != FR_OK)
{
printf("\r\nOpen file error!\r\n");
}
else
{ if(res == FR_OK)
{
iTemp=13;
res = f_write(&file, &iTemp, sizeof(iTemp), &bw); /* Write it to the dst file */
//res = f_write(&file, "\r\n",2, &bw); /* Write it to the dst file */
iTemp=1;
res = f_write(&file, &iTemp, sizeof(iTemp), &bw); /* Write it to the dst file */
printf("\r\nwrite data ok!\r\n");
}
else
{
printf("\r\nwrite data error!\r\n");
}
}
f_close(&file); res=f_open(&file,"0:/Test.bin",FA_OPEN_EXISTING|FA_READ);//
if(res!=FR_OK)
{
printf("\r\n f_open() fail .. \r\n");
}
else
{
printf("\r\n f_open() success .. \r\n");
}
while(!f_eof(&file))
{
iBuf=0;
res = f_read(&file, &iTemp, sizeof(u16), &br);//¶Áȡһ¸ö16λµÄÊý¾Ý
if(res==FR_OK)
{
iBuf++;
printf("%d \r\n",iTemp);
}
else
{
printf("\r\n f_read() fail .. \r\n");
}
}
f_close(&file);
f_mount(fs[0],"0:",NULL);

【转】STM32利用FATFS读写数组的更多相关文章

  1. 联盛德 HLK-W806 (十三): 运行FatFs读写FAT和exFat格式的SD卡/TF卡

    目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...

  2. Hadoop 中利用 mapreduce 读写 mysql 数据

    Hadoop 中利用 mapreduce 读写 mysql 数据   有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...

  3. HDU - 1166 敌兵布阵 方法一:(线段树+单点修改,区间查询和) 方法二:利用树状数组

    C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况.由于 ...

  4. php利用array_filter()过滤数组空值

    利用array_filter过滤数组空值 <?php $array = array( 0 => '霜天部落', 1 => false, 2 => 1, 3 => null ...

  5. C++ 利用指针和数组以及指针和结构体实现一个函数返回多个值

    C++ 利用指针和数组实现一个函数返回多个值demo1 #include <iostream> using namespace std; int* test(int,int,int); i ...

  6. C语言利用结构体数组实现学生成绩管理系统

    这篇文章主要为大家详细介绍了C语言利用结构体数组实现学生成绩管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 要求: 某班有最多不超过30人(具体人数由键盘输入) ...

  7. C语言之:结构体动态分配内存(利用结构体数组保存不超过10个学生的信息,每个学生的信息包括:学号、姓名和三门课(高数、物理和英语 )的成绩和平均分(整型)。)

    题目内容: 利用结构体数组保存不超过10个学生的信息,每个学生的信息包括:学号.姓名和三门课(高数.物理和英语 )的成绩和平均分(整型). 编写程序,从键盘输入学生的人数,然后依次输入每个学生的学号. ...

  8. STM32下FatFs的移植,实现了坏块管理,硬件ECC,ECC纠错,并进行擦写均衡分析

    最近因项目需要,做一个数据采集的单片机平台.需要移植 FatFs .现在把最后成果贴上来. 1.摘要 在 STM32 单片机上,成功移植 FatFs 0.12b,使用的 Nand Flash 芯片为 ...

  9. 利用JSON实现数组去重

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

随机推荐

  1. 将行数据转换成Java(POJO)对象

    工作中经常会遇到将行数据转换成Java(POJO)对象的场景,其中关于字段校验和类型转换的处理繁琐而冗余,对于有代码洁癖的人着实不能忍.这里分享下自己封装的工具代码,也许能够帮助你更简单地完成此类任务 ...

  2. 关于Vue中props的详解

    看一下官方文档: 组件实例的作用域是孤立的.这意味着不能 (也不应该) 在子组件的模板内直接引用父组件的数据.父组件的数据需要通过 prop 才能下发到子组件中. 也就是props是子组件访问父组件数 ...

  3. filbeat遇到的坑(运行久和文件数据量多时候 )

    1.现像,吃cpu,&& io 过程:量大的时候发现在filbeat很吃io, 原因: 日志量文件数太多,因为日志是2m一个文件 ,一天几十个G 开始怀疑是centos  6的问题,, ...

  4. leetcode 763. 划分字母区间

    题目描述: 字符串 S 由小写字母组成.我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段.返回一个表示每个字符串片段的长度的列表. 示例 1: 输入: S = "a ...

  5. 【Activiti学习之一】Activiti入门

    环境 JDK1.7 MySQL5.6 Tomcat7 Eclipse-Luna activiti 6.0 一.概念1.工作流(Workflow):是一系列相互衔接.自动进行的业务活动或任务.采用工作流 ...

  6. 命名法:骆驼(Camel)、帕斯卡(pascal)、匈牙利(Hungarian)、下划线(_)

    首先欢迎大家到来! 常用的命名法:骆驼(Camel).帕斯卡(pascal).匈牙利(Hungarian).下划线(_) 骆驼:是指混合使用大小写字母来构成变量和函数的名字 帕斯卡:与骆驼命名法类似只 ...

  7. python 判断矩阵中每行非零个数的方法

    python 判断矩阵中每行非零个数的方法: # -*- coding: utf-8 -*- # @Time : 2018/5/17 15:05 # @Author : Sizer # @Site : ...

  8. Linux内核引用计数器kref结构

    1.前言 struct kref结构体是一个引用计数器,它被嵌套进其它的结构体中,记录所嵌套结构的引用计数.引用计数用于检测内核中有多少地方使用了某个对象,每当内核的一个部分需要某个对象所包含的信息时 ...

  9. [转帖]Hikari 数据源介绍

    Hikari 数据源介绍 jimmy・2018 年 09 月 23 日・默认分类 预估 https://izhong.me/index.php/archives/78/ 介绍 官网地址: https: ...

  10. MVVM模式理解(转)

    原文https://www.cnblogs.com/goloving/p/8520030.html MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心 ...