因为存为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. django -- 安装django

    安装 通过cmd进行安装 pip3 install django==1.11.11 创建django项目 通过命令行进行创建 下面的命令创建了一个名为"mydjango"的Djan ...

  2. python3 pathlib库中的Path类的使用

    调用库 from pathlib import Path 获取 Path 的文件名 Path.name 参考 https://blog.csdn.net/amanfromearth/article/d ...

  3. R包的安装 卸载 加载 移除等

    R包的安装 1)使用 Rstudio 手动安装 Rstudio的窗口默认为四个,在右下角的窗口的 packages 下会显示所有安装的 R 包 点击 Install -> 输入R 包名 -> ...

  4. 亿级Web系统搭建 Web负载均衡的几种实现方式(阿里)

    我还写了两篇详细的 参考:六大Web负载均衡原理与实现 参考:LVS(Linus Virtual Server):三种IP负载均衡方式比较+另三种Web负载均衡方式 其中LVS.HAProxy可以工作 ...

  5. scala 项目pom示例

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  6. Docker快速搭建Zookeeper和kafka集群

    使用Docker快速搭建Zookeeper和kafka集群 镜像选择 Zookeeper和Kafka集群分别运行在不同的容器中zookeeper官方镜像,版本3.4kafka采用wurstmeiste ...

  7. 关于nginx proxy_next_upstream 重试 和 max_fails的那些事

    背景及简要分析 前几天一次故障定位的时候发现,后端服务(java)在从故障中恢复之后,会出现大量499,且会持续较长时间无法自行恢复.根本原因是服务容量问题,处理太慢导致客户端等不了了,主动断开.不过 ...

  8. Maven ------ 了解与安装

    1.什么是Maven Maven :项目对象模型(POM),可以通过一段描述信息来管理项目的构建,报告和文档的项目管理工具软件, maven 来自犹太语意为知识的积累,为了在项目中简化构建过程,最直观 ...

  9. Qt 文件选项对话框弹出两次

    1 问题 ​ 在Qt 5.12.0 版本中,用 QFileDialog 类来做文件选择时候,发现当弹出对话框后,选择完文件后,又弹出文件选择对话框. 2 原因查找 2.1 代码 QFileDialog ...

  10. 记一个Redis分布式事务锁

    package com.mall.common; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory. ...