这是本文档旧的修订版!
	
		| 银杏科技有限公司旗下技术文档发布平台 | 
	
		| 技术支持电话 | 0379-69926675-801 | 
	
		| 技术支持邮件 | Gingko@vip.163.com | 
	
		| 技术论坛 | http://www.eeschool.org | 
	
		| 版本 | 日期 | 作者 | 修改内容 | 
	
		| V1.0 | 2020-03-31 | gingko | 初次建立 | 
STM32CubeMX教程十七——FATFS实验
实验十七:FATFS实验——文件操作
一、 实验目的与意义
-  了解FATFS结构。 
-  了解FATFS特征。 
-  掌握FATFS的使用方法。 
-  掌握STM32 HAL库中FATFS属性的配置方法。 
-  掌握KEIL MDK集成开发环境使用方法。 
 
二、 实验设备及平台
- 
- 
-  Micro USB线缆。 
-  Keil MDK 开发平台。 
-  STM32CubeMX开发平台。 
-  装有WIN XP(及更高版本)系统的计算机。 
 
三、 实验原理
1.文件系统
2.FATFS简介
-  FATFS是一个完全免费开源的FAT文件系统模块,专为小型的嵌入式系统而设计。 
-  它完全用标准的C语言编写,具有良好的硬件平台独立性,可以移植到8051、PIC、 
-  AVR、SH、Z80、H8、ARM等系列单片机上而只需做简单的修改。FATFS支持FTA12 FAT16 和FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写,并特别对8位和16位单片机做了优化。 
 
3.FATFS文件系统官网:
4.FATFS模块的层次结构:
 
-  最顶层是应用层: 
-  中间层FATFS模块: 
-  底层存储媒介接口: 
 
5.FATFS文件系统特点
-  Windows兼容的FAT文件系统(支持FAT12/FAT16/FAT32); 
-  与平台无关,移植简单;代码量少,效率高; 
-  多种配置选项:支持多卷(物理驱动器或分区,最多10个卷);多个ANSI/OEM代码页,包括DBCS;支持长文件名,ANSI/OEM或Unicode;支持RTOS;支持多种扇区大小; 
-  只读、最小化的API和I/O缓冲区等。 
-  FATFS的这些特点,加上免费、开源的原则,使得FATFS应用非常广泛。 
-  STM32F407上带有SDIO控制器,iCore3核心板上将SDIO连接到TF卡座上。本实验将Micro SD卡插入TF卡座上即可。通过FATFS创建“SD卡测试.txt”文件,并且写入数据0-511,然后读出并打印到终端上。硬件连接示意图如下: 
 
 
 
四、 实验程序
1. 主函数
2 FATFS函数介绍
3. SD结构体定义
五、 实验步骤
-  把仿真器与iCore3的SWD调试口相连(直接相连或者通过转接器相连); 
-  把iCore3通过Micro USB线与计算机相连,为iCore3供电; 
-  打开Keil MDK 开发环境,并打开本实验工程; 
-  打开PuTTY串口终端(注:PuTTY使用方法见附录); 
-  烧写程序到iCore3上; 
-  也可以进入Debug 模式,单步运行或设置断点验证程序逻辑。 
 
六、 实验现象
在终端显示屏上可以看到FATFS操作的信息,如下图:
 
附录:
1、iCore3供电后,打开计算机—-属性—-设备管理器—-端口
 2、打开PuTTY
2、打开PuTTY
 3、此时就可以烧写程序进行验证了。
3、此时就可以烧写程序进行验证了。