请版主帮忙,为什么读不到正确的数据?

用issue_token命令执行基本控制传输,要求取设备的HID报告描述符, 控制传输的建立阶段可以完成, 数据阶段中用issue_token命令向设备端发送in包也成功, 但此后我用rd_usb_data取数据时,无论数据的数量或数据本身都是错误的。 数据同步方面,建立阶段的同步属性设的是80h,数据阶段设的是c0h。 请大侠帮忙!

那你发送下去的端点号以及发送令牌的中断传输是成功的吗?


应该都是成功的 建立阶段:当我发送issue_token后,读中断状态得到的是14H 数据阶段:发送issue_token后,读中断状态得到的也是14H


DATA阶段:issue_token(( 0 << 4 ) | DEF_USB_PID_IN)操作成功,应该能读取到数据。 UploadImages/20077301095455.rar这是获取的完整程序,你可以参考一下。


忙活了2天多,发现好像不是数据是否正确的问题,而是觉得ch375对rd_usb_data命令没有反映,或者说反应错误,原因如下: 1 如果我发送完rd_usb_data命令后立即去读,读到的数据是14H(好像读到的是上一次的中断状态字节) 2 如果我发送完rd_usb_data命令后给一个大于大约10微秒的延时,读到的数据是00H(好像是返回了一个空包给ch375) 我根据上述两个现象得到了两个结论,不知道对不对?


再问两个问题: 1 用ch375做设备,主机给ch375发送usb总线复位命令,那总线复位子程序该做些什么工作呢?做完这些工作后又该做什么工作呢? 2 ch375做设备时,有USB_INT_BUS_RESET1~USB_INT_BUS_RESET4四个中断状态,中断原因都是检测到总线复位,请问这四个中断状态有什么不同吗?


1,总线复位并没有说是把设备给复位了啊,实际总线复位,USB总线进行了停发SOF包等操作。在总线复位完成之后的话,那么,主机会继续检测设备连接,当检测的设备连接时候,主机就会发送获取设备描述符的控制传输的命令,设备接收到这个命令之后,将设备本身的描述符传给主机,然后主机受到之后,设置设备的地址,接下来就是获取配置描述符,完成之后就设置配置。 2,/* USB_INT_BUS_RESET 0x0000XX11B */ /* USB总线复位 */ 只要返回的状态符合上面的说明的,就是总线复位,没什么区别


我的硬件连接到计算机后,计算机总是发USB总线复位命令,发送12次后提示设备出错。 按照上面的解释,应该是计算机没有检测到设备已经连接上,所以它会才重复地发复位命令。 如果我的理解正确,那么应该通过什么途径重新把设备连接上呢,重新设置工作模式吗? 我试过了,没成功!

还有,4楼的问题怎么没有回答?


实际上是这样的,在你测试命令通过之后,设置模式为0X02,这样的话,372的UD+对地电压为3。3V左右,UD-对地电压为0V左右,这样的话,在接到计算机的话,计算机就会提示你安装驱动,如果你计算机都没找到硬件的话,那么计算机随便发什么命令都是没有意义的


只有登录才能回复,可以选择微信账号登录