问题描述
我想使用闪存而不是SD卡替换stm32 msc设备实例。 为此,我在示例中对usbd_storage.c文件进行了一些更改。 我尝试使用USBH_MSC_Read函数,而不是CubeMX应用程序中使用的BSP_SD_WriteBlocks_DMA函数,但没有得到任何结果。 当我使用USB电缆连接到PC时,我将设备视为新驱动程序,但收到警告“请在USB驱动器中插入磁盘”。
我该怎么做才能解决此问题?我正在等待您的帮助。
////////
#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,uint16_t blk_len)
{
int8_t ret = -1;
USBH_StatusTypeDef status = USBH_OK;
status = USBH_MSC_Write(&hUSBHostFS,blk_len);
if(status == USBH_OK)
{
ret = 0;
}
return ret;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)