用STM32F103ZET6写的USB HID设备与计算机通信程序,可以接收数据,但发送有问题,请教一下大家

2019-07-21 03:04发布

USB枚举过程是成功了的,计算机设备管理器中看到的设备:

用PortHelper调试USB如下:

点击发送后,STM32接收到数据并且从串口返回接收到的数据如下:

我的STM32 USB通信程序中,当端点1接收到一次数据后就每隔一段时间通过端点2发送数据(内容是:哦艾斯黛拉),然后从串口返回的数据发现STM32每隔一段时间端点2都会产生IN中断,但是PortHelper软件并没有接收到数据,然后我用Bus Hound抓取USB包,首先抓取的是HID-compliant device设备,如下图:

然后用PortHelper USb调试器与STM32通信,Bus Hound只抓取到了OUT数据包,如下:

从端点2发送到计算机IN的数据包没有,但是STM32 USB每隔一段时间产生了IN中断,也就是说STM32发送了数据给电脑,但PortHelper中端点2没有收到数据,接着我有用Bus Hound抓取“USB输入设备”的数据,如下图:

PortHelper与STM32进行USB通信,Bus Hound抓取到的数据包如下:

从抓取到的数据包看到“USB输入设备”收到的STM32发来的数据,图中圈出来的就是“哦艾斯黛拉”的十六进制数据,我想问的是为什们“HID-compliant device”收不到IN数据?而“USB输入设备”可以?(USB的各种描述符是直接从一个STM USB HID例程复制过来的,那个例程HID-compliant device”和“USB输入设备”都可以收到STM32从端点2发送上来的数据。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。