发布网友 发布时间:2022-04-21 08:20
共1个回答
热心网友 时间:2023-07-22 14:10
(1)USB主机检测到USB设备插入后,对设备复位。(2)USB主机对设备发送获取设备描述符的标准请求。(3)设备收到该请求后,在数据过程将设备描述符返回给主机。(4)主机在成功获取到一个数据包的设备描述符后并且确认无错误后,返回一个0长度的状态数据包给设备。(5)主机再对设备复位一下,接下来进入到设置地址阶段。(6) USB主机发出一个设置地址的请求,地址包含在建立包中。(7)USB设备在收到地址后,返回0长度的状态包。(8)主机收到0长度的状态包之后,返回一个ACK。(9)设备在收到这个ACK之后,就可以启用新的地址了。USB一直进中断的原因:主机每1ms就给设备发送一个sof,3ms没反应主机就挂起。所以一直进中断属于正常现象。USB虚拟串口使用时应注意:(1)用于上拉的控制位使能时,主机能检测到USB设备。(2)设备插入时,地址为0,后由主机分配地址。(3)枚举结束前(即设备被识别前),不能中断程序,否则设备不能被识别。(4)设备发送usb_SendDataToHost("\r\n$ERRCMD#\r\n", 10)注意数据长度为10,而不为16.主机发送“WHO’S DEMO”这类有空格的字符串时,空格会被省略,在设备里计算长度时应为9,而不为10.