27.disk_status
获取当前磁盘的状态
DSTATUS disk_status (
BYTE Drive /* 物理驱动器号 */
);
参数
Drive
指定待确认的物理驱动器号。
返回值
磁盘状态,是下列标志的组合: STA_NOINIT 指示磁盘驱动器还没有被初始化。当系统复位、磁盘移除和 disk_initialize 函数失败时,该标志被设置;当 disk_initialize 函数成功时,该标志被清除。 STA_NODISK 指示驱动器中没有存储介质。当安装了磁盘驱动器后,该标志始终被清除。
STA_PROTECTED
指示存储介质被写保护。在不支持写保护缺口的驱动器上,该标志始终被清除。当 STA_NODISK 被设置时,该标志无效。
28.disk_read
从磁盘驱动器中读取扇区
DRESULT disk_read (
BYTE Drive, /* 物理驱动器号 */
BYTE* Buffer, /* 读取数据缓冲区的指针 */
DWORD SectorNumber, /* 起始扇区号 */
BYTE SectorCount /* 要读取的扇区数 */
);
参数
Drive
指定物理驱动器号。
Buffer
存储读取数据的缓冲区的指针。该缓冲区大小需要满足要读取的字节数 ( 扇区大小 * 扇区总数。由上层指定的存储器地址可能会也可能不会以字边界对齐。 SectorNumber 指定在逻辑块地址 (LBA) 中的起始扇区号。
SectorCount
指定要读取的扇区数 (1-255) 。
返回值
RES_OK (0)
函数成功
RES_ERROR
在读操作过程中发生了不能恢复的硬错误。
RES_PARERR
无效的参数。
RES_NOTRDY
磁盘驱动器还没被初始化。
29.disk_write
向磁盘驱动器中写入扇区
DRESULT disk_write (
BYTE Drive, /* 物理驱动器号 */
const BYTE* Buffer, /* 写入数据缓冲区的指针 ( 可能未对齐 ) */
DWORD SectorNumber, /* 起始扇区号 */
BYTE SectorCount /* 要写入的扇区数 */
);
参数
Drive
指定物理驱动器号。
Buffer
存储写入数据的缓冲区的指针。由上层指定的存储器地址可能会也可能不会以字边界对齐。
SectorNumber
指定在逻辑块地址 (LBA) 中的起始扇区号。
SectorCount
指定要写入的扇区数 (1-255) 。
返回值
RES_OK (0)
函数成功
RES_ERROR
在读操作过程中发生了不能恢复的硬错误。
RES_WRPRT
存储介质被写保护。
RES_PARERR
无效的参数。
RES_NOTRDY
磁盘驱动器还没被初始化。
在只读配置中,不需要此函数。
30.disk_ioctl
控制设备特定的功能以及磁盘读写以外的其它功能。
DRESULT disk_ioctl (
BYTE Drive, /* 驱动器号 */
BYTE Command, /* 控制命令代码 */
void* Buffer /* 数据传输缓冲区 */
);
参数
Drive
指定驱动器号 (1-9) 。
Command
指定命令代码。
Buffer
取决于命令代码的参数缓冲区的指针。当不使用时,指定一个 NULL 指针。
返回值
RES_OK (0)
函数成功。
RES_ERROR
发生错误。
RES_PARERR
无效的命令代码。
RES_NOTRDY
磁盘驱动器还没被初始化。
FatFs 模块只使用下述与设备无关的命令,没有使用任何设备相关功能。
命令
| 描述
| GET_SECTOR_SIZE
| 返回驱动器的扇区大小赋给 Buffer 指向的 WORD 变量。在单个扇区大小配置中(_MAX_SS 为 512) ,不需要该命令。
| GET_SECTOR_COUNT
| 返回总扇区数赋给 Buffer 指向的 DWORD 变量。只在 f_mkfs 函数中,使用了该命令。
| GET_BLOCK_SIZE
| 返回以扇区为单位的存储阵列的擦除块大小赋给 Buffer 指向的 DWORD 变量。当擦除块大小未知或是磁盘设备时,返回 1 。只在 f_mkfs 函数中,使用了该命令。
|
31.get_fattime
获取当前时间
DWORD get_fattime (void);
返回值
返回的当前时间被打包进一个 DWORD 数值。各位域定义如下:
bit31:25
年,从 1980 年开始算起 (0..127)
bit24:21
月 (1..12)
bit20:16
日 (1..31)
bit15:11
时 (0..23)
bit10:5
分 (0..59)
bit4:0
秒 /2(0..29) ,由此可见 FatFs 的时间分辨率为 2 秒
get_fattime 函数必须返回任何有效的时间,即使系统不支持实时时钟。如果返回一个 0 ,则文件将没有一个有效的时间。在只读配置中,不需要此函数。 |