理论教育 基于物联网的STM32单片机应用与实践

基于物联网的STM32单片机应用与实践

时间:2023-11-09 理论教育 版权反馈
【摘要】:它支持FAT12、FAT16和FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写,并特别对8位单片机和16位单片机做了优化。实现了FAT文件读/写协议。

基于物联网的STM32单片机应用与实践

1.FATFS文件系统

FATFS是一个完全免费开源的FAT文件系统模块,专门为小型的嵌入式系统而设计。完全用标准C语言编写,所以具有良好的硬件平台独立性。可以移植到8051、PIC、AVR、SH、Z80、H8、ARM等系列单片机上而只须做简单的修改。它支持FAT12、FAT16和FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写,并特别对8位单片机和16位单片机做了优化

2.FATFS文件系统的特点

(1)Windows兼容的FAT文件系统(支持FAT12/FAT16/FAT32)。

(2)与平台无关,移植简单。全C语言编写。

(3)代码量少、效率高。

(4)多种配置选项:支持多卷(物理驱动器或分区,最多10个卷);多个ANSI/OEM代码页包括DBCS;支持长文件名、ANSI/OEM或Unicode;支持RTOS;支持多种扇区大小;只读、最小化的API和I/O缓冲区等。

3.FATFS文件的结构

FATFS文件的结构主要分为底层接口、中间层FATFS模块和应用层三部分。(www.daowen.com)

(1)底层接口。包括存储媒介读/写接口(disk I/O)和供给文件创建修改时间的实时时钟,根据平台和存储介质编写移植代码。

(2)中间层FATFS模块。实现了FAT文件读/写协议。FATFS模块提供的是ff.c和ff.h。除非有必要,使用者一般不用修改,使用时将头文件直接包含进去即可。

(3)应用层。使用者无需理会FATFS的内部结构和复杂的FAT协议,只需要调用FATFS模块提供给用户的一系列应用接口函数,如f_open,f_read,f_write和f_close等,就可以像在PC上读/写文件那样简单。

4.FATFS文件系统包

(1)diskio.c和diskio.h是硬件层,负责与底层硬件接口适配。

(2)ff.c和ff.h是FatFs的文件系统层和文件系统的API层。

(3)FATFS模块在移植的时候,一般只需要修改2个文件,即ffconf.h和diskio.c。

(4)FATFS模块的所有配置项都存放在ffconf.h里面,通过配置里面的一些选项,来满足用户的需求。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈