在线时间244 小时
UID3458621
ST金币2346
蝴蝶豆929
注册时间2018-2-28
该用户从未签到
版主
- 最后登录
- 2021-3-31
|
发表于 2019-4-24 15:52:19
|
显示全部楼层
在F4的测试中看到,在U盘枚举结束后会回调到这个USBH_UserProcess函数:
else
{
MSC_Handle->current_lun = 0U;
MSC_Handle->state = MSC_IDLE;
#if (USBH_USE_OS == 1U)
phost->os_msg = (uint32_t)USBH_CLASS_EVENT;
#if (osCMSIS < 0x20000U)
(void)osMessagePut(phost->os_event, phost->os_msg, 0U);
#else
(void)osMessageQueuePut(phost->os_event, &phost->os_msg, 0U, NULL);
#endif
#endif
phost->pUser(phost, HOST_USER_CLASS_ACTIVE);
}
在USBH_UserProcess函数中会设置Appli_state状态到APPLICATION_READY状态:
static void USBH_UserProcess(USBH_HandleTypeDef *phost, uint8_t id)
{
switch(id)
{
case HOST_USER_SELECT_CONFIGURATION:
break;
case HOST_USER_DISCONNECTION:
Appli_state = APPLICATION_DISCONNECT;
if (FATFS_UnLinkDriver(USBDISKPath) == 0)
{
if(f_mount(NULL, "", 0) != FR_OK)
{
LCD_ErrLog("ERROR : Cannot DeInitialize FatFs! \n");
}
}
break;
case HOST_USER_CLASS_ACTIVE:
Appli_state = APPLICATION_READY;
break;
case HOST_USER_CONNECTION:
if (FATFS_LinkDriver(&USBH_Driver, USBDISKPath) == 0)
{
if (f_mount(&USBH_fatfs, "", 0) != FR_OK)
{
LCD_ErrLog("ERROR : Cannot Initialize FatFs! \n");
}
}
break;
default:
break;
}
}
所以看起来像是U盘要顺利通过枚举才行 |
|