android usb设备枚举失败,USB枚举失败问题请教各位大佬

在调试过程中遇到USB设备插入后程序停止运行的问题,主要集中在USBH_GetDescriptor函数的调用上。USBH_StatusUSBH_Get_DevDesc函数返回1,进一步追踪发现USBH_CtlReq函数返回USBH_BUSY,导致执行停留在CMD_SEND状态,无法进入CMD_WAIT。开发者正在寻求解决USB控制器忙碌状态和命令发送等待问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[18:37:35] 12-11 18:44: 9 检测到USB设备插入!

[18:37:35] 12-11 18:44: 9 复位设备...

[18:37:35] 12-11 18:44: 9 全速(FS)USB设备!

程序也是运行到这里不运行了

后面我就跟踪进去发现

USBH_Status USBH_Get_DevDesc(USB_OTG_CORE_HANDLE *pdev,

USBH_HOST *phost,

uint8_t length)

{

USBH_Status status;

if((status = USBH_GetDescriptor(pdev,

phost,

USB_REQ_RECIPIENT_DEVICE | USB_REQ_TYPE_STANDARD,

USB_DESC_DEVICE,

pdev->host.Rx_Buffer,

length)) == USBH_OK)

{

/* Commands successfully sent and Response Received */

printf_com("USBH_GetDescriptorv ok

");

USBH_ParseDevDesc(&phost->device_prop.Dev_Desc, pdev->host.Rx_Buffer, length);

}

printf_com("status:%d

",status);

return status;

}

这个函数返回的状态为1

接着我又跟踪到USBH_GetDescriptor这个函数里面去 发现

是USBH_CtlReq这个函数返回了USBH_BUSY,

这个函数进来只执行了case CMD_SEND:  就不执行case CMD_WAIT:

请问这个该怎么解决了  有没有人遇到过这个问题;

跪求啦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值