📖 第 42 章:USB U盘(Host)实验(USB U-Disk (Host))

🔧 正点原子《DMF407 开发指南》V1.0 · Chapter 42
🗨️ 「读 U 盘:FATFS 文件系统移植。」
这一章在干嘛? USB U 盘实验:USB Host 协议、Mass Storage 类、FATFS 文件系统移植。从此 MCU 可以读写 U 盘。
42.1 FATFS 简介42.2 U 盘简介42.3 硬件设计42.4 程序设计42.5 下载验证

42.1 FATFS 简介

FATFS = 通用 FAT 文件系统模块(Chan 出品,嵌入式圈最常用)。

原书图 42.1.1:FATFS 模块结构
原书图 42.1.1:FATFS 模块结构

42.2 U 盘简介

U 盘是 USB Mass Storage Device:

原书图 42.2.1:U 盘结构
原书图 42.2.1:U 盘结构

USB OTG FS 也能当 Host:在 USB_OTG_FS 配置里 Mode = Host Only。需要外部给 USB 设备供电(开发板已集成)。

42.3 硬件设计

USB OTG FS 引脚 PA11/PA12 接 USB 母口。

42.4 程序设计

42.4.1 CubeMX 配置

42.4.2 关键代码

FATFS fs;
FIL f;
UINT br;

// 挂载
f_mount(&fs, "0:", 1);

// 读文件
f_open(&f, "0:/test.txt", FA_READ);
f_read(&f, buf, sizeof(buf), &br);
f_close(&f);

// 写文件
f_open(&f, "0:/log.txt", FA_WRITE | FA_OPEN_ALWAYS);
f_write(&f, "Hello\n", 6, &bw);
f_close(&f);

原书图 42.4.2.1:USB Host 读写流程
原书图 42.4.2.1:USB Host 读写流程

原书图 42.4.2.2:FATFS 关键 API 调用链
原书图 42.4.2.2:FATFS 关键 API 调用链

42.5 下载验证

插入 U 盘 → 串口打印 f_mount 成功 → 读 test.txt 串口显示 → 写 log.txt → PC 上能看到新文件。

U 盘格式:务必 FAT32,exFAT 需额外配置。NTFS 不支持。

🧠 小测验
FATFS 是?
通用的 FAT 文件系统模块。
U 盘文件系统一般?
FAT32。
打开文件后必须做什么?
f_close,否则内容可能丢失。
← 上一篇🏠 顶层目录下一篇 →