| USBD ROM Stack 1.0 ROM based USB device stack

Data Fields
USB_INTERFACE_DESCRIPTOR Struct Reference
USB Core Layer

`#include <mw_usbd/mw_usbd.h>`

## Data Fields
uint8_t | bLength
uint8_t | bDescriptorType
uint8_t | bInterfaceNumber
uint8_t | bAlternateSetting
uint8_t | bNumEndpoints
uint8_t | bInterfaceClass
uint8_t | bInterfaceSubClass
uint8_t | bInterfaceProtocol
uint8_t | iInterface

## Detailed Description

USB Standard Interface Descriptor

## Field Documentation

## ◆ bLength

uint8_t USB_INTERFACE_DESCRIPTOR::bLength

Size of this descriptor in bytes

## ◆ bDescriptorType

uint8_t USB_INTERFACE_DESCRIPTOR::bDescriptorType

INTERFACE Descriptor Type

## ◆ bInterfaceNumber

uint8_t USB_INTERFACE_DESCRIPTOR::bInterfaceNumber

Number of this interface. Zero-based value identifying the index in the array of concurrent interfaces supported by this configuration.

## ◆ bAlternateSetting

uint8_t USB_INTERFACE_DESCRIPTOR::bAlternateSetting

Value used to select this alternate setting for the interface identified in the prior field

## ◆ bNumEndpoints

uint8_t USB_INTERFACE_DESCRIPTOR::bNumEndpoints

Number of endpoints used by this interface (excluding endpoint zero). If this value is zero, this interface only uses the Default Control Pipe.

## ◆ bInterfaceClass

uint8_t USB_INTERFACE_DESCRIPTOR::bInterfaceClass

Class code (assigned by the USB-IF).
A value of zero is reserved for future standardization.
If this field is set to FFH, the interface class is vendor-specific.
All other values are reserved for assignment by the USB-IF.

## ◆ bInterfaceSubClass

uint8_t USB_INTERFACE_DESCRIPTOR::bInterfaceSubClass

Subclass code (assigned by the USB-IF).
These codes are qualified by the value of the bInterfaceClass field.
If the bInterfaceClass field is reset to zero, this field must also be reset to zero.
If the bInterfaceClass field is not set to FFH, all values are reserved for assignment by the USB-IF.

## ◆ bInterfaceProtocol

uint8_t USB_INTERFACE_DESCRIPTOR::bInterfaceProtocol

Protocol code (assigned by the USB).
These codes are qualified by the value of the bInterfaceClass and the bInterfaceSubClass fields. If an interface supports class-specific requests, this code identifies the protocols that the device uses as defined by the specification of the device class.
If this field is reset to zero, the device does not use a class-specific protocol on this interface.
If this field is set to FFH, the device uses a vendor-specific protocol for this interface.

## ◆ iInterface

uint8_t USB_INTERFACE_DESCRIPTOR::iInterface

Index of string descriptor describing this interface

The documentation for this struct was generated from the following file:

- mw_usbd/mw_usbd.h