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个配置描述符的!)
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)的配置描述符,同样修改索引值,也可以读出其它配置描述符,
首先把第一步解解决了。
预祝下面的工作顺利。