STM32 ECM 获取配置描述符 设置配置

 

ME909在不同的系统使用不同的配置描述符, 默认使用的是第1个配置描述符,也就是XP/WIN7使用的moderm,用STM32读出来的也是这个配置描述符,

但是我要在STM32上运行ECM协议,这样加快4G模块的速度,但得使用第2个配置基于NDIS协议,

于是我就着手做下面的工作:

1,把第2个配置描述符读出来,并设置为有效,USBH_SetCfg() 

2. 移植ECM驱动,

3,。。。

没想到第1步就遇到了困难,第2个配置描述读不出来,搞了一下午,快21:00时,才有了灵感,顺利读出了配置描述符2

(STM32 原生CUBE USB 协议栈是读不出第2个配置描述符的!)

STM32 ECM 获取配置描述符 设置配置_第1张图片

USBH_StatusTypeDef USBH_Get_CfgDesc(USBH_HandleTypeDef *phost,                      
                             uint16_t length)

{

  if((status = USBH_GetDescriptor(phost,
                                  USB_REQ_RECIPIENT_DEVICE | USB_REQ_TYPE_STANDARD,                          
                                  USB_DESC_CONFIGURATION|1, 
                                  pData,
                                  length)) == USBH_OK)
  {}

}

添加了这个1索引之后,就可以读出索引为1(bconfigrationvalue =2)的配置描述符,同样修改索引值,也可以读出其它配置描述符,

STM32 ECM 获取配置描述符 设置配置_第2张图片

STM32 ECM 获取配置描述符 设置配置_第3张图片

首先把第一步解解决了。

预祝下面的工作顺利。

 

 

你可能感兴趣的:(mcu,5G)