包括:USER_ioctl()、USER_initialize()、USER_status()、USER_read()、USER_write(),下面逐一介绍: 添加FLASH头文件 //user_diskio.c文件中添加 #include "bsp_spi_flash.h"//添加FLASH驱动 USER_ioctl()修改 FATFS调用该函数获取FLASH的器件信息,函数中添加扇区大小、扇区数量信息等,代码如下: DRESULT U...
其次,需要选一下FATFS下拉列表中的user-defined,接着生成工程文件 自己拓展用户自定义磁盘需要在user-diskio.c中添加API接口函数,这点与SD卡不同,因为SD卡自动帮你添加了这些接口,非常方便。 下一步,打开user-diskio.c,添加接口函数,具体有USER_read,USER_write,USER_ioctl三个部分 首先根据我们选择的硬件,添加...
DRESULT USER_ioctl ( BYTE pdrv, /* Physical drive nmuber (0..) */ BYTE cmd, /* Control code */ void *buff /* Buffer to send/receive control data */ ) { /* USER CODE BEGIN IOCTL */ printf("USER_ioctl... "); DRESULT res = SD_disk_ioctl(pdrv, cmd, buff); printf("%02X...
/* USER CODE BEGIN Includes */ #define sFLASH_CMD_WRITE 0x02 /*!< Write to Memory inst...
与SDMMC配置一样,需要实现对应的接口函数,也就是修改user_diskio.c,同样也只需对修改USER_read,USER_write,USER_ioctl三个函数接口,其他可以不做修改。完整代码如下: /* USER CODE BEGIN Header *//** *** * @file user_diskio.c * @brief This file includes a diskio driver skeleton to be complete...
DSTATUSUSER_initialize(BYTE pdrv);DSTATUSUSER_status(BYTE pdrv);DRESULTUSER_read(BYTE pdrv,BYTE*buff,DWORD sector,UINT count);#if_USE_WRITE==1DRESULTUSER_write(BYTE pdrv,const BYTE*buff,DWORD sector,UINT count);#endif/* _USE_WRITE == 1 */#if_USE_IOCTL==1DRESULTUSER_ioctl(BYTE p...
code */ void *buff /* Buffer to send/receive control data */ ) { /* USER CODE BEGIN IOCTL */ printf("USER_ioctl... "); DRESULT res = SD_disk_ioctl(pdrv, cmd, buff); printf("%02X\r\n", res); return res; /* USER CODE END IOCTL */ } #endif /* _USE_IOCTL == 1 *...
switch(cmd){caseGET_SECTOR_COUNT:*(DWORD*)buff=2048;// 总的扇区数break;caseGET_SECTOR_SIZE:*(WORD*)buff=4096;// 定义一个扇区大小为4Kbreak;caseGET_BLOCK_SIZE:*(DWORD*)buff=65536;// 定义一个块大小为64Kbreak;}returnRES_OK;/* USER CODE END IOCTL */}#endif/* _USE_IOCTL == 1 */...
disk_ioctl函数有三个形参,pdrv为设备物理编号,cmd为控制指令,包括发出同步信号、获取扇区数目、获取扇区大小、获取擦除块数量等等指令, buff为指令对应的数据指针。 对于SD卡,为支持格式化功能,需要用到获取扇区数量(GET_SECTOR_COUNT)指令和获取块尺寸(GET_BLOCK_SIZE)。另外,SD卡扇区大小为512字节,串行Flash芯片一...
DRESULT USER_ioctl (BYTE pdrv, /* Physical drive nmuber (0..) */ BYTE cmd, /* Con...