硬汉嵌入式论坛

 找回密码
 立即注册
查看: 6766|回复: 5
收起左侧

[有问必答] 请教USB host和device问题

[复制链接]

3

主题

14

回帖

23

积分

新手上路

积分
23
发表于 2015-12-22 11:32:17 | 显示全部楼层 |阅读模式
请问你们的那份综合例程(μCOS-III+STemWin+FatFs+Lwip+UIP+USB综合程序V1.2c)里的USB host和device都有效吗,在V5板上试了下,好像device不可以
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106856
QQ
发表于 2015-12-22 11:54:43 | 显示全部楼层
Device也是用Host口实现的。
回复

使用道具 举报

3

主题

14

回帖

23

积分

新手上路

积分
23
 楼主| 发表于 2015-12-22 13:34:23 | 显示全部楼层
Device也是用Host口实现的话,那我想在电脑上也加载个U盘就不可以了是不?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106856
QQ
发表于 2015-12-22 13:37:50 | 显示全部楼层

回 qq792368480 的帖子

qq792368480:Device也是用Host口实现的话,那我想在电脑上也加载个U盘就不可以了是不? (2015-12-22 13:34) 
做不到,只能分时复用。HOST和Device不能同时实现,因为只有一个USB内核。这两个接口其实是一个HS接口和一个FS接口。
回复

使用道具 举报

3

主题

14

回帖

23

积分

新手上路

积分
23
 楼主| 发表于 2015-12-22 13:44:22 | 显示全部楼层

回 eric2013 的帖子

eric2013:做不到,只能分时复用。HOST和Device不能同时实现,因为只有一个USB内核。这两个接口其实是一个HS接口和一个FS接口。 (2015-12-22 13:37) 
哦好的,但看你们的这个代码好像就是分时复用的功能
回复

使用道具 举报

3

主题

14

回帖

23

积分

新手上路

积分
23
 楼主| 发表于 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;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-8 04:52 , Processed in 0.348313 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表