这是本文档旧的修订版!
银杏科技有限公司旗下技术文档发布平台 |
技术支持电话 | 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集成开发环境使用方法。
二、 实验设备及平台
iCore3 双核心板。
JLINK(或相同功能)仿真器。
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
3、此时就可以烧写程序进行验证了。