CH32V203 用历程里的SimulateCDC-HID历程,在HID收发数据的时候,有两个问题不太明白,请教一下:1.HID发送的时候为什么第一个1没有被返回呢?2.发送的是9个字符为什么收到的永远是
64个字符呢?
我看历程里MCU是把收到的数据在发送出去。我把原历程里USBFS_EP4_Buf[ i ]前的取反删掉了。
CH32V203 用历程里的SimulateCDC-HID历程,在HID收发数据的时候,有两个问题不太明白,请教一下:1.HID发送的时候为什么第一个1没有被返回呢?2.发送的是9个字符为什么收到的永远是
64个字符呢?
我看历程里MCU是把收到的数据在发送出去。我把原历程里USBFS_EP4_Buf[ i ]前的取反删掉了。
我在另一个历程 CompatibilityHID 发现这样一句注释,貌似是和第一个问题有关,具体是为什么呢?USB协议么还是MCU做了什么处理?
* Note that the first byte is the valid data length and the remaining bytes are
* the transmission data for interrupt Transfers.
你好,关于你提出的两个问题:1、例程中是做了一个回传的处理,上位机通过端点4下发给V203的数据,V204会取反后从端点4返回上传给上位机,程序如下:
在你的这个上位机上为什么第一个1没有收到,这个可以对USB总线抓包看一下实际传输的数据来确认;
2、为什么传输的一定是64字节,这是由于在报告描述符中规定好设备就是要Input或Output64字节的报告,程序如下:
看了下收发的数据,IN 包确实少了第一个数据。
OUT一共发了65个数,第一个应该不是有效数据
看到有地方描述IN包第一个字节是ID
找到原因了是调试工具纸飞机的BUG,首次打开纸飞机,左下角“发送报告ID”不做任何操作,就会出现发送的数据第一个字节丢失的情况。
在请教下,CH32V203怎么去获取到这个报告ID呢?