CH32V203 USB通信問(wèn)題

我修改了官方的CompositeKM例程,在其中添加了一個(gè)端點(diǎn)用于通信,但是修改后的程序在使用bushound分析通信時(shí)發(fā)現(xiàn)主機(jī)一直在獲取字符串描述符,端點(diǎn)上傳數(shù)據(jù)正常,但是隔一段時(shí)間就會(huì)發(fā)送一條命令獲取字符串描述符,設(shè)備返回后還是繼續(xù)發(fā)送,是什么原因?

這是我修改后的配置描述符

/*?Configuration?Descriptor?Set?*/
const?uint8_t?MyCfgDescr[?]?=
{
????/*?Configuration?Descriptor?*/
????0x09,???????????????????????????????????????????????????//?bLength
????0x02,???????????????????????????????????????????????????//?bDescriptorType
????0x5B,?0x00,?????????????????????????????????????????????//?wTotalLength
????0x03,???????????????????????????????????????????????????//?bNumInterfaces
????0x01,???????????????????????????????????????????????????//?bConfigurationValue
????0x00,???????????????????????????????????????????????????//?iConfiguration
????0xA0,???????????????????????????????????????????????????//?bmAttributes:?Bus?Powered;?Remote?Wakeup
????0x32,???????????????????????????????????????????????????//?MaxPower:?100mA

????/*?Interface?Descriptor?(Keyboard)?*/
????0x09,???????????????????????????????????????????????????//?bLength
????0x04,???????????????????????????????????????????????????//?bDescriptorType
????0x00,???????????????????????????????????????????????????//?bInterfaceNumber
????0x00,???????????????????????????????????????????????????//?bAlternateSetting
????0x01,???????????????????????????????????????????????????//?bNumEndpoints
????0x03,???????????????????????????????????????????????????//?bInterfaceClass
????0x01,???????????????????????????????????????????????????//?bInterfaceSubClass
????0x01,???????????????????????????????????????????????????//?bInterfaceProtocol:?Keyboard
????0x00,???????????????????????????????????????????????????//?iInterface

????/*?HID?Descriptor?(Keyboard)?*/
????0x09,???????????????????????????????????????????????????//?bLength
????0x21,???????????????????????????????????????????????????//?bDescriptorType
????0x11,?0x01,?????????????????????????????????????????????//?bcdHID
????0x00,???????????????????????????????????????????????????//?bCountryCode
????0x01,???????????????????????????????????????????????????//?bNumDescriptors
????0x22,???????????????????????????????????????????????????//?bDescriptorType
????0x3E,?0x00,?????????????????????????????????????????????//?wDescriptorLength

????/*?Endpoint?Descriptor?(Keyboard)?*/
????0x07,???????????????????????????????????????????????????//?bLength
????0x05,???????????????????????????????????????????????????//?bDescriptorType
????0x81,???????????????????????????????????????????????????//?bEndpointAddress:?IN?Endpoint?1
????0x03,???????????????????????????????????????????????????//?bmAttributes
????0x08,?0x00,?????????????????????????????????????????????//?wMaxPacketSize
????0x0A,???????????????????????????????????????????????????//?bInterval:?10mS

????/*?Interface?Descriptor?(Mouse)?*/
????0x09,???????????????????????????????????????????????????//?bLength
????0x04,???????????????????????????????????????????????????//?bDescriptorType
????0x01,???????????????????????????????????????????????????//?bInterfaceNumber
????0x00,???????????????????????????????????????????????????//?bAlternateSetting
????0x01,???????????????????????????????????????????????????//?bNumEndpoints
????0x03,???????????????????????????????????????????????????//?bInterfaceClass
????0x01,???????????????????????????????????????????????????//?bInterfaceSubClass
????0x02,???????????????????????????????????????????????????//?bInterfaceProtocol:?Mouse
????0x00,???????????????????????????????????????????????????//?iInterface

????/*?HID?Descriptor?(Mouse)?*/
????0x09,???????????????????????????????????????????????????//?bLength
????0x21,???????????????????????????????????????????????????//?bDescriptorType
????0x10,?0x01,?????????????????????????????????????????????//?bcdHID
????0x00,???????????????????????????????????????????????????//?bCountryCode
????0x01,???????????????????????????????????????????????????//?bNumDescriptors
????0x22,???????????????????????????????????????????????????//?bDescriptorType
????0x34,?0x00,?????????????????????????????????????????????//?wDescriptorLength

????/*?Endpoint?Descriptor?(Mouse)?*/
????0x07,???????????????????????????????????????????????????//?bLength
????0x05,???????????????????????????????????????????????????//?bDescriptorType
????0x82,???????????????????????????????????????????????????//?bEndpointAddress:?IN?Endpoint?2
????0x03,???????????????????????????????????????????????????//?bmAttributes
????0x08,?0x00,?????????????????????????????????????????????//?wMaxPacketSize
????0x01,????????????????????????????????????????????????????//?bInterval:?1mS

????/*?Interface?Descriptor?(EP3)?*/
????0x09,???????????????????????????????????????????????????//?bLength
????0x04,???????????????????????????????????????????????????//?bDescriptorType
????0x02,???????????????????????????????????????????????????//?bInterfaceNumber
????0x00,???????????????????????????????????????????????????//?bAlternateSetting
????0x02,???????????????????????????????????????????????????//?bNumEndpoints
????0x03,???????????????????????????????????????????????????//?bInterfaceClass
????0x00,???????????????????????????????????????????????????//?bInterfaceSubClass
????0x00,???????????????????????????????????????????????????//?bInterfaceProtocol:?Mouse
????0x00,???????????????????????????????????????????????????//?iInterface

????/*?HID?Descriptor?(EP3)?*/
????0x09,???????????????????????????????????????????????????//?bLength
????0x21,???????????????????????????????????????????????????//?bDescriptorType
????0x00,?0x01,?????????????????????????????????????????????//?bcdHID
????0x00,???????????????????????????????????????????????????//?bCountryCode
????0x01,???????????????????????????????????????????????????//?bNumDescriptors
????0x22,???????????????????????????????????????????????????//?bDescriptorType
????0x22,?0x00,?????????????????????????????????????????????//?wDescriptorLength

????/*?Endpoint?Descriptor?(EP3)?*/
????0x07,???????????????????????????????????????????????????//?bLength
????0x05,???????????????????????????????????????????????????//?bDescriptorType
????0x83,???????????????????????????????????????????????????//?bEndpointAddress:?IN?Endpoint?3
????0x03,???????????????????????????????????????????????????//?bmAttributes
????0x40,?0x00,?????????????????????????????????????????????//?wMaxPacketSize
????0x01,????????????????????????????????????????????????????//?bInterval:?1mS

????/*?Endpoint?Descriptor?(EP3)?*/
????0x07,???????????????????????????????????????????????????//?bLength
????0x05,???????????????????????????????????????????????????//?bDescriptorType
????0x03,???????????????????????????????????????????????????//?bEndpointAddress:?OUT?Endpoint?3
????0x03,???????????????????????????????????????????????????//?bmAttributes
????0x40,?0x00,?????????????????????????????????????????????//?wMaxPacketSize
????0x01,????????????????????????????????????????????????????//?bInterval:?1mS


};

這是通過(guò)bushound獲取的通信數(shù)據(jù)

QQ截圖20230930221133.png

你好,從抓包數(shù)據(jù)看,80 06 02 03 09 04 0a 02,最后兩個(gè)數(shù)據(jù)不太正常,默認(rèn)是ff 00,0a 02表示希望獲取的長(zhǎng)度是0x2a0,可能是代碼邏輯問(wèn)題,之前告訴主機(jī),這個(gè)描述符的長(zhǎng)度是0x2a0。

可以留個(gè)郵箱,有KM+HID的例程,節(jié)后發(fā)給你。


好的,我的郵箱是個(gè)人信息保護(hù),已隱藏,多謝回復(fù)


老哥,別忘了給我發(fā)一份例程


有USBD的鍵鼠加hid的例程可以一塊發(fā)我一份嗎


郵箱已回復(fù)


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频