CH573F模拟兼容HID设备接收USB数据问题

在测试的时候,发现 len = R8_USB_RX_LEN; //读取接收数据的字节数

这个len 实际上是固定的64个字节,一直都是等于64,现在想通过什么方法可以从接收缓存中知道实际接收到的字节数

屏幕截图 2022-04-18 093453.png原本是想通过 if (*Adata != '\0') 检查,但是发现一旦接收缓存pEP1_OUT_DataBuf数据帧中出现0x00字节,就自动跳出for循环, 所以这个方法失败,然后全部打印了pEP1_OUT_DataBuf发现,64个字节中,除去接收到的实际字节外,剩下的全部是0x00,填充的。


请问,如何 检查下位机USB接收到的实际字节数呢?

这边用BUS HOUND发送OUT方向的数据,打印len数值是正常的。

1650252507163641.png

1650252507125243.png

可能是调试软件自动填充了0x00,0也是数据,同样被计数。


你好, 你这个是用的什么类型的例程,我用的是573 兼容性HID的固件,用bushound 找不到发送数据的位置

屏幕截图 2022-04-18 130506.png



选中的VID 413D,PID 2107就是 我这个USB设备


使用的是我自己写的HID兼容设备程序,也是573F的芯片。双击图中选中的一行英文,弹出右边的窗口即可编辑OUT数据的内容,点击Run发送。

Inked0~UX}87}K(R`K0QUTG]GU87_LI.jpg


那可能是 下位机程序的问题?  我换了一个 USB监控软件,同样写几个字节,打印的也是 64个字节,后面全部是0

屏幕截图 2022-04-18 144742.png输入8个字节,  USB监控助手和 下位机串口打印的,都是 64个字节,后面全部是0


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