Skip to content

更改当前的驱动器

李述铜

518字约2分钟

2024-08-08

提示

同学,你好,欢迎学习本课程!本课程是介绍了FATFS文件系统模块的基本使用,是一门相对较简单的课程。

如果你对文件系统的实现比较感兴趣,也可以关注我的《从0到1写FAT32文件系统》课程。

欢迎转载本文章,转载请注明链接来源,谢谢!

本课时介绍驱动器的相关接口,主要用于有多驱动器的场合。

应用场合

在大多情况下,使用FATFS时,只需要处理外接一种存储器。例如,在外部MCU中挂一个SD卡。所以,无需考虑多驱动器的场合。

不过,有时候可能在硬件上外挂了多颗存储器,并且在这些存储器上都使用FAT文件系统管理。或者在SD卡上有多个分区,对每个分区进行管理。这里FATFS也可以支持。

在多分区或多驱动器的场合中,很多时候调用FATFS文件相关接口时,都需要指定驱动器的路径,例如:

f_chdir(_T("0:/os/"));

可能有时你比较懒,想着能不能不用每次都指定,而是直接用缺省的驱动器。FATFS支持这样的配置。

接口介绍

在FATFS内部,其有一个静态变量,保存了当前采用的驱动器号缺省值,其初始值为0,即缺省的驱动器号为0。

如果调用相关接口函数,不指定驱动器的路径,则默认使用0号驱动器。当然,我们也可以使用f_chdrive更改。该函数原型如下:

FRESULT f_chdrive (
  const TCHAR* path  /* [IN] 逻辑驱动器号 */
);

参数:

  • path: 指定要设置为当前驱动器的逻辑驱动器号。

返回值:

  • FR_OK
  • FR_INVALID_DRIVE

示例:

f_chdrive("2:");  /* 将驱动器 2 设置为当前驱动器 */

注意事项

一般情况下,我们不需要使用该函数。