1

STM32F4 MCU に仮想 COM ポートを実装しています。

MCU には利用可能なエンドポイントがないため、interupt エンドポイント/通知要素を削除する必要があります。問題は、MCU が PC にメッセージを一度しか送信できないことです。

デバイスの USB 記述子:

Interface Association Descriptor:
------------------------------
0x08    bLength
0x0B    bDescriptorType
0x02    bFirstInterface
0x02    bInterfaceCount
0x02    bFunctionClass   (Communication Device Class)
0x02    bFunctionSubClass   (Abstract Control Model)
0x01    bFunctionProtocol   (ITU-T V.250)
0x06    iFunction

Interface Descriptor:
------------------------------
0x09    bLength
0x04    bDescriptorType
0x02    bInterfaceNumber
0x00    bAlternateSetting
0x00    bNumEndPoints
0x02    bInterfaceClass   (Communication Device Class)
0x02    bInterfaceSubClass   (Abstract Control Model)
0x01    bInterfaceProtocol   (ITU-T V.250)
0x02    iInterface   ""

CDC Header Functional Descriptor:
------------------------------
0x05    bFunctionalLength
0x24    bDescriptorType
0x00    bDescriptorSubtype
0x0110  bcdCDC

CDC Call Management Functional Descriptor:
------------------------------
0x05    bFunctionalLength
0x24    bDescriptorType
0x01    bDescriptorSubtype
0x00    bmCapabilities
0x01    bDataInterface

CDC Abstract Control Management Functional Descriptor:
------------------------------
0x04    bFunctionalLength
0x24    bDescriptorType
0x02    bDescriptorSubtype
0x02    bmCapabilities

CDC Union Functional Descriptor:
------------------------------
0x05    bFunctionalLength
0x24    bDescriptorType
0x06    bDescriptorSubtype
0x00    bControlInterface
0x01    bSubordinateInterface(0)

Interface Descriptor:
------------------------------
0x09    bLength
0x04    bDescriptorType
0x03    bInterfaceNumber
0x00    bAlternateSetting
0x02    bNumEndPoints
0x0A    bInterfaceClass   (CDC Data)
0x00    bInterfaceSubClass   
0x00    bInterfaceProtocol   
0x02    iInterface   ""

Endpoint Descriptor:
------------------------------
0x07    bLength
0x05    bDescriptorType
0x03    bEndpointAddress   (OUT Endpoint)
0x02    bmAttributes    (Transfer: Bulk / Synch: None / Usage: Data)
0x0010  wMaxPacketSize   (16 Bytes) 
0x00    bInterval

Endpoint Descriptor:
------------------------------
0x07    bLength
0x05    bDescriptorType
0x85    bEndpointAddress   (IN Endpoint)
0x02    bmAttributes    (Transfer: Bulk / Synch: None / Usage: Data)
0x0010  wMaxPacketSize   (16 Bytes) 
0x00    bInterval
4

1 に答える 1

0

この役に立たないエンドポイントを削除すると、usbser Windows ドライバーが異常になります。そのため、アプリケーションが決して使用しない場合でも、interupt IN エンドポイントが必要です。

于 2016-08-10T14:11:27.450 に答える