你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【MCU实战经验】STM32F207的host USB的MSC和HID的合并开发

[复制链接]
mon51 发布时间:2014-3-31 18:51
阅读主题, 点击返回1楼
收藏 2 评论23 发布时间:2014-3-31 18:51
23个回答
mon51 回答时间:2014-4-1 11:03:56

RE:【MCU实战经验】STM32F207的host USB的MSC和HID的合并开发

这是判别代码:
//修改:添加MSC-HID自动判别,然后再初始化CALSS-CB
unsigned char JB_MSC_HID(USBH_HOST *phost,unsigned char flag){//0:判别MSC,1:判别HID
       
if(flag==0){
        if(phost->device_prop.Itf_Desc[0].bInterfaceClass == MSC_CLASS){
                if(phost->device_prop.Itf_Desc[0].bInterfaceProtocol == MSC_PROTOCOL)        return 1;
         }
}else{
         if(phost->device_prop.Itf_Desc[0].bInterfaceSubClass  == HID_BOOT_CODE) return 1;
}
return 0;
}
mon51 回答时间:2014-4-1 11:05:29

RE:【MCU实战经验】STM32F207的host USB的MSC和HID的合并开发

发的帖子,自动缩进的功能没有了,看起来不方便。
mon51 回答时间:2014-4-1 11:11:33

RE:【MCU实战经验】STM32F207的host USB的MSC和HID的合并开发

另一个重要的函数,它影响了V2.0与V2.1对U盘的兼容性。
/**
  * @brief  USBH_CtlReq
  *         USBH_CtlReq sends a control request and provide the status after
  *            completion of the request
  * @param  pdev: Selected device
  * @param  req: Setup Request Structure
  * @param  buff: data buffer address to store the response
  * @param  length: length of the response
  * @retval Status
  */
USBH_Status USBH_CtlReq     (USB_OTG_CORE_HANDLE *pdev,
                             USBH_HOST           *phost,
                             uint8_t             *buff,
                             uint16_t            length)
{
  USBH_Status status;
  status = USBH_BUSY;
  
  switch (phost->RequestState)
  {
  case CMD_SEND:
    /* Start a SETUP transfer */
    USBH_SubmitSetupRequest(phost, buff, length);
    phost->RequestState = CMD_WAIT;
    status = USBH_BUSY;
    break;
   
  case CMD_WAIT:
                if(Get_HOST_USB_MODE()==0){ //--2014-3-30 添加2种模式判别!!!
                        if  (status == URB_DONE){
                                /* Commands successfully sent and Response Received  */      
                                phost->RequestState = CMD_SEND;
                                status = USBH_OK;
                        }
                        else if  (status == URB_ERROR){
                                /* Failure Mode */
                                phost->RequestState = CMD_SEND;
                                status = USBH_FAIL;
                        }   
                         else if  (status == URB_STALL){
                                /* Commands successfully sent and Response Received  */      
                                phost->RequestState = CMD_SEND;
                                status = USBH_NOT_SUPPORTED;
                        }
                }else{
                         if (phost->Control.state == CTRL_COMPLETE ){//HID 处理!!
                                        // Commands successfully sent and Response Received      
                                        phost->RequestState = CMD_SEND;
                                        phost->Control.state =CTRL_IDLE;  
                                        status = USBH_OK;      
                                }
                                else if  (phost->Control.state == CTRL_ERROR)
                                {
                                        // Failure Mode
                                        phost->RequestState = CMD_SEND;
                                        status = USBH_FAIL;
                                }   
                                 else if  (phost->Control.state == CTRL_STALLED )
                                {
                                        // Commands successfully sent and Response Received         
                                        phost->RequestState = CMD_SEND;
                                        status = USBH_NOT_SUPPORTED;
                                }
                }
        break;
        //-------------------------------------
  default:
    break;
  }
  return status;
}
zydwh 回答时间:2014-4-1 12:33:19

RE:【MCU实战经验】STM32F207的host USB的MSC和HID的合并开发

请把程序打包后上传。谢谢!
风云1999~ 回答时间:2014-7-29 14:35:17

回复:【MCU实战经验】STM32F207的host USB的MSC和HID的合并开发

 正需要看这方面,怎么看不见
diohmc 回答时间:2014-8-6 23:28:57

RE:【MCU实战经验】STM32F207的host USB的MSC和HID的合并开发

请把程序打包后上传。谢谢!
xlz-2055839 回答时间:2014-10-16 17:18:59

回复:【MCU实战经验】STM32F207的host USB的MSC和HID的合并开发

学习ing·······
小伟哥-353357 回答时间:2015-3-17 17:37:06
FS模式下 USBH_MSC_Read10读卡死是什么原因楼主能指点一下嘛??
wn1900 回答时间:2015-6-1 10:44:41
这样看着很不方便,楼主可以打包,简单说明一下就好了,赞一个,辛苦了,楼主
逆风的沙 回答时间:2015-11-24 08:53:18
很好 ,楼主真是厉害。

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版