|
楼主 |
发表于 2015-12-22 13:45:13
|
显示全部楼层
回 eric2013 的帖子
eric2013:做不到,只能分时复用。HOST和Device不能同时实现,因为只有一个USB内核。这两个接口其实是一个HS接口和一个FS接口。 (2015-12-22 13:37)  /* 初始化USB HOST */
case GUI_ID_BUTTON0:
switch(NCode)
{
case WM_NOTIFICATION_CLICKED:
#ifdef USE_USB_OTG_FS
USBH_Init(&USB_OTG_Core,
USB_OTG_FS_CORE_ID,
&USB_Host,
&USBH_MSC_cb,
&USR_USBH_MSC_cb);
#else
USBH_Init(&USB_OTG_Core,
USB_OTG_HS_CORE_ID,
&USB_Host,
&USBH_MSC_cb,
&USR_USBH_MSC_cb);
#endif
g_ucState = USB_HOST;
TEXT_SetText(WM_GetDialogItem(hWin,GUI_ID_TEXT3), "OPEN USB HOST");
break;
}
break;
/* 关闭USB HOST */
case GUI_ID_BUTTON1:
switch(NCode)
{
case WM_NOTIFICATION_CLICKED:
USBH_DeInit(&USB_OTG_Core, &USB_Host);
USB_OTG_StopHost(&USB_OTG_Core);
/* Manage User disconnect operations*/
USB_Host.usr_cb->DeviceDisconnected();
/* Re-Initilaize Host for new Enumeration */
USBH_DeInit(&USB_OTG_Core, &USB_Host);
USB_Host.usr_cb->DeInit();
USB_Host.class_cb->DeInit(&USB_OTG_Core, &USB_Host.device_prop);
g_ucState = USB_IDLE;
TEXT_SetText(WM_GetDialogItem(hWin,GUI_ID_TEXT3), "CLOSE USB HOST");
break;
}
break;
/* 初始化USB DEVICE */
case GUI_ID_BUTTON2:
switch(NCode)
{
case WM_NOTIFICATION_CLICKED:
USBD_Init(&USB_OTG_Core,
#ifdef USE_USB_OTG_FS
USB_OTG_FS_CORE_ID,
#elif defined USE_USB_OTG_HS
USB_OTG_HS_CORE_ID,
#endif
&USR_desc,
&USBD_MSC_cb,
&USR_cb);
g_ucState = USB_DEVICE;
TEXT_SetText(WM_GetDialogItem(hWin,GUI_ID_TEXT3), "OPEN USB DEVICE");
break;
}
break;
/* 关闭USB DEVICE */
case GUI_ID_BUTTON3:
switch(NCode)
{
case WM_NOTIFICATION_CLICKED:
DCD_DevDisconnect (&USB_OTG_Core);
USB_OTG_StopDevice(&USB_OTG_Core);
TEXT_SetText(WM_GetDialogItem(hWin,GUI_ID_TEXT3), "CLOSE USB DEVICE");
break;
}
break; |
|