stm32h743单片机嵌入式学习笔记4-文件系统FATFS
FAT32 文件系统 就是在格式化的时候 选择 FAT32 方式格式化。
然后在 SD 卡存储区会产生一个类似于 目录 的文件系统。
这样存入 SD 卡中的所有 文件 文件夹 都会在这个目录中找到。
找到的是该文件或文件夹的 开始簇 和 结束簇 文件名 文件大小 文件类型
(如.txt .bin .bmp)等等。
所谓的这个目录 就是我们经常讲的 SD 卡根目录
将整个 SD 卡根目录里的所有文件名显示到 TFT 屏上的,然后随便点击 一个文
件 就会打开这个文件,这些都是要提取 SD 卡 根目录的所有信息的。
提取 根目录 的信息,首先知道根目录的具体位置
找根目录的位置 是整个 FAT32 文件系统的最重要的环节
FAT32 文件系统 分为主引导扇区 MBR 和 DBR 扇区
一般情况下 SD 卡的这两个扇区都有 但是有少数的没有 MBR 扇区 开头就是
DBR 扇区
*读取举例:此文件夹里装的为测试 BIN 图片文件 是已经制作好的 240x320 图片
上面是sd卡根目录放的几个文件
物理扇区编号 这里是 8335 直接将这个地址带入函数
SD_read_sector(8335,buf) 中 所提取出来的数据就是已8335 扇区为首地址的512
个字节数据,如果提去完一个 512 字节以后,要是在提取后面的数据就在首地
址后
字节以后,要是在提取后面的数据就在首地
址后+1 ,即 8335+1 ,这样就继续显示下面的数据,连续地+1 直到把整张的图片
显示完成。
这样就完成了sd卡里面一张图片的直接提取(不用文件系统)
也就是说文件系统就相当于是一组写入和读取规则,我们只需要调用对应写入和读取函数就可以实现以文件的概念操作了,使得操作更加简便
然后主要就是几个函数的使用了,比如:
exfuns_init(); //为fatfs相关变量申请内存
res=f_mount(fs[1],"1:",1); //挂载FLASH,这里的“1”’代表字符串形式的数字,代表第几个磁盘,不能乱写,只能递增,追踪源码在这儿:
/* Get logical drive number */
vol = get_ldnumber(&rp); // 这里的rp就是输入的字符串,继续往下追踪:
i = (int)*tp - '0'; /* Get the LD number */ // 这就说明了就是把字符串形式的数字转为了真正的数字了
res=f_mkfs("1:",FM_ANY,0,fatbuf,FF_MAX_SS); //格式化FLASH,1:,盘符;FM_ANY,自动选择文件系统类型,0,自动选择簇大小
f_setlabel((const TCHAR *)"1:ALIENTEK");//设置Flash磁盘的名字为:ALIENTEK
while(exf_getfree("0",&total,&free)) //得到SD卡的总容量和剩余容量
f_opendir(&picdir,"0:/PICTURE") //打开图片文件夹
..........读文件,创建文件,写文件等等函数
stm32h743单片机嵌入式学习笔记4-文件系统FATFS相关推荐
- stm32h743单片机嵌入式学习笔记6-压缩图片解码原理
软件解码: JPEG/JPG 的解码过程可以简单的概述为如下几个部分: 1 .从文件头读出文件的相关信息. JPEG 文件数据分为文件头和图像数据两大部分,其中文件头记录了图像的版本. 长宽.采样因子 ...
- stm32h743单片机嵌入式学习笔记7-FPU
* FPU 即浮点运算单元(Float Point Unit).浮点运算,对于定点 CPU(没有 FPU 的 CPU) 来说必须要按照 IEEE-754 标准的算法来完成运算,是相当耗费时间的.而对于 ...
- 嵌入式学习笔记——基于Cortex-M的单片机介绍
基于Cortex-M的单片机介绍 前言 1生产厂商及其产品线 1.1ARM单片机的产品线 1.2命名规则 作业1 2习单片机的资料准备 2.1STM32开发所需手册 2.1.1芯片的数据手册 芯片基本 ...
- 嵌入式学习笔记——ADC模数转换器
ADC模数转换器 前言 ADC介绍 ADC概述 ADC的数量 ADC的特性 ADC框图 芯片外部框图 芯片内部框图 转换部分框图 状态输出部分 条件触发框图 寄存器介绍 编程思路 模式选择 规则通道的 ...
- cortex_m3_stm32嵌入式学习笔记(十五):待机唤醒实验(WK_UP外部中断)
cortex_m3_stm32嵌入式学习笔记(十五):待机唤醒实验(WK_UP外部中断) https://blog.csdn.net/qq_16255321/article/details/43086 ...
- 嵌入式学习笔记——STM32的USART通信概述
文章目录 前言 常用通信协议分类及其特征介绍 通信协议 通信协议分类 1.同步异步通信 2.全双工/半双工/单工 3.现场总线/板级总线 4. 串行/并行通信 5. 有线通信.无线通信 STM32通信 ...
- 嵌入式学习笔记--jlink 工具RTT使用笔记
嵌入式学习笔记–jlink 工具RTT 使用笔记 最近有调试一个ethcat板卡的需求,板卡设计的很简洁,没有多余的调试串口,正准备飞线到单片机针脚上的时候发现了RTT 的这个工具,记录一下使用的方法 ...
- 嵌入式学习笔记——使用寄存器编程操作GPIO
使用寄存器编程操作GPIO 前言 GPIO相关的寄存器 GPIO 端口模式寄存器 (GPIOx_MODER) (x = A..I) 位操作 GPIO 端口输出类型寄存器 (GPIOx_OTYPER) ...
- 嵌入式学习笔记——寄存器实现控制LED小灯
文章目录 前言 GPIO通用输出模式 初始化LED小灯的GPIO 原理图 初始化代码 初始化的效果 功能函数封装 直接分开宏定义两个 使用条件运算符 封装函数实现简单的功能 KEIL MDK一些技巧 ...
最新文章
- 操作系统常用词典(一)
- 实现计时、时钟,实时获取当前年月日时分秒,记录时间(获取当前的时间,开始计时,计时过程相当于你的电脑时钟)0000年00月00日 00:00:00
- 黑客窃取思科、IBM与甲骨文认证管理系统内的敏感数据
- 都是基于.NET平台,WPF能取代Winform吗?
- 数据挖掘基础学习一:VMware虚拟机Ubuntu上安装Python和IPython Notebook(Jupyter Notebook)完整步骤及需要注意的问题(以ubuntu-18.04.3为例)
- 度身定造的女孩子C程序
- 用 js判断 一个数是否是素数(质数)_小学数学知识点1~6年级汇总整理,收藏起来随时用!(下)...
- 扇贝有道180925每日一句
- 软件工程经济学知识点总结
- win764位和32位有什么区别_win10系统32位和64位区别详解
- LaTeX下载安装-1
- linux下chm阅读器
- 提高办公协同效率,Tracup可能是最好的选择
- 3D模型制作的流程的步骤
- 默认禁用SMB1协议的Samba 4.11-RC1 发布了
- 筱筱看博客(函数柯里化、节流防抖)
- 内部稽核与内部控制管理体系关系的探讨
- 4.2 Pollard p-1算法
- transformer股票步骤
- 简单好玩的vue小游戏,网页小游戏
热门文章
- python制作词典软件_AlphaDict: 它是一个轻量级的开放词典格式的开源词典软件,你可以制作自己的词典, 也是一个跨平台的软件支持 linux, unix and windows....
- 现实总比相像中好些——西单图书大厦活动侧记
- 我刚刚通过 @盛大网盘EverBox 分享了 Web协议与实践HTTP.、网络协议、缓存技术和....pdf, 欢迎大家下载!...
- 盘点国内程序员不常用的热门iOS第三方库:看完,还敢自称”精通iOS开发”吗?
- IFNULL()函数、CONCAT()函数、IF()函数、YEAR()函数、DATE_FORMAT()函数、LENGTH()函数、NOW()函数、CURDATE()函数、CURTIME()函数基本使用
- 华为电脑系统linux下载,华为操作系统openeuler去哪下载?官方下载ISO安装包
- SSL集训 2021.07.16 提高B组 T1 下棋【博弈论】
- 主要视频压缩技术在中国内地市场发展分析
- sublime 正则跨行匹配
- wap上网的简单介绍