在stm32 USB MSC设备应用程序中使用闪存驱动器代替microSD
我想用闪存代替sd卡替换stm32 msc设备实例。 为此,我对示例中的usbd_storage.c文件进行了一些更改。 我尝试了USBH_MSC_Read函数,而不是CubeMX应用程序中使用的BSP_SD_WriteBlocks_DMA函数,但没有得到任何结果。 当我使用usb电缆连接到电脑时,我将我的设备视为一个新的驱动程序,但我收到警告“请将磁盘插入usb驱动器” 我该怎么解决这个问题?我在这件事上等待你的帮助在stm32 USB MSC设备应用程序中使用闪存驱动器代替microSD,usb,stm32,stm32cubemx,Usb,Stm32,Stm32cubemx,我想用闪存代替sd卡替换stm32 msc设备实例。 为此,我对示例中的usbd_storage.c文件进行了一些更改。 我尝试了USBH_MSC_Read函数,而不是CubeMX应用程序中使用的BSP_SD_WriteBlocks_DMA函数,但没有得到任何结果。 当我使用usb电缆连接到电脑时,我将我的设备视为一个新的驱动程序,但我收到警告“请将磁盘插入usb驱动器” 我该怎么解决这个问题?我在这件事上等待你的帮助 //////// #define STORAGE_LUN_NBR
////////
#define STORAGE_LUN_NBR 1
#define STORAGE_BLK_NBR 0x64
#define STORAGE_BLK_SIZ 0x200 //512
int8_t STORAGE_GetCapacity(uint8_t lun, uint32_t * block_num,
uint16_t * block_size)
{
int8_t ret = -1;
*block_num = STORAGE_BLK_NBR;
*block_size = STORAGE_BLK_SIZ;
return ret = 0;
}
int8_t STORAGE_IsReady(uint8_t lun)
{
static int8_t prev_status = 0;
int8_t ret = -1;
if(USBH_MSC_IsReady(&hUSBHostFS))
{
ret = 0;
}
return ret;
}
int8_t STORAGE_Read(uint8_t lun, uint8_t * buf, uint32_t blk_addr,
uint16_t blk_len)
{
int8_t ret = -1;
USBH_StatusTypeDef status = USBH_OK;
status = USBH_MSC_Read(&hUSBHostFS, lun, blk_addr, buf, blk_len);
if(status == USBH_OK)
{
ret = 0;
}
return ret;
}
int8_t STORAGE_Write(uint8_t lun, uint8_t * buf, uint32_t blk_addr,
uint16_t blk_len)
{
int8_t ret = -1;
USBH_StatusTypeDef status = USBH_OK;
status = USBH_MSC_Write(&hUSBHostFS, lun, blk_addr, buf, blk_len);
if(status == USBH_OK)
{
ret = 0;
}
return ret;
}
主机设备是否正确初始化?你能从闪存中读取数据吗?