Configuration Descriptor

This blog post delves into the structure of a USB audio device's Configuration Descriptor, detailing its components such as the configuration, interface, class-specific, and endpoint descriptors. It provides an example of a complete_configuration structure for a USB audio device, highlighting the roles of each descriptor type in defining the device's functionality." 98872487,7468154,目标检测中的非极大值抑制详解,"['目标检测', '计算机视觉', '图像处理']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

整個Configuration 分成4大部分 :

  1. configuration
  2. interface,
  3. class or vendor specific( 如 HID, Audio)
  4. endpoint
    在这里插入图片描述
    以一个usb audio 的设备configuration descriptor来举例:
    typedef struct
    {
    configuration_descriptor cd; // Configuration descriptor
    interface_descriptor id0; // Audio control interface
    audio_header_descriptor ahd; // Audio control header
    input_terminal_descriptor itd; // Audio input terminal
    feature_unit_descriptor fud; // Audio feature unit
    output_terminal_descriptor otd; // Audio output terminal
    interface_descriptor id1_0; // Audio zero-bandwidth interface
    interface_descriptor id1_1; // Audio streaming interface
    stream_interface_descriptor sid; // Audio stream descriptor
    typeI_format_descriptor tfd; // Audio format descriptor
    stream_endpoint_descriptor sed; // Streaming endpoint descriptor
    audio_endpoint_descriptor aed; // Audio endpoint descriptor
    interface_descriptor id2; // HID interface descriptor
    hid_descriptor hd; // HID descriptor
    endpoint_descriptor ed1; // GET_REPORT input endpoint
    endpoint_descriptor ed2; // SET_REPORT output endpoint
    } complete_configuration; // End of complete_configuration

configuration_descriptor:
{ // Standard configuration descriptor
0x09, // bLength (9)
0x02, // bDescriptorType (CONFIGURATION)
0x9100, // wTotallength (145)
0x03, // bNumInte

/** * @brief Configuration structure of the TinyUSB core * * USB specification mandates self-powered devices to monitor USB VBUS to detect connection/disconnection events. * If you want to use this feature, connected VBUS to any free GPIO through a voltage divider or voltage comparator. * The voltage divider output should be (0.75 * Vdd) if VBUS is 4.4V (lowest valid voltage at device port). * The comparator thresholds should be set with hysteresis: 4.35V (falling edge) and 4.75V (raising edge). */ typedef struct { union { const tusb_desc_device_t *device_descriptor; /*!< Pointer to a device descriptor. If set to NULL, the TinyUSB device will use a default device descriptor whose values are set in Kconfig */ const tusb_desc_device_t *descriptor __attribute__((deprecated)); /*!< Alias to `device_descriptor` for backward compatibility */ }; const char **string_descriptor; /*!< Pointer to array of string descriptors. If set to NULL, TinyUSB device will use a default string descriptors whose values are set in Kconfig */ int string_descriptor_count; /*!< Number of descriptors in above array */ bool external_phy; /*!< Should USB use an external PHY */ union { struct { const uint8_t *configuration_descriptor; /*!< Pointer to a configuration descriptor. If set to NULL, TinyUSB device will use a default configuration descriptor whose values are set in Kconfig */ }; #if (TUD_OPT_HIGH_SPEED) struct { const uint8_t *fs_configuration_descriptor; /*!< Pointer to a FullSpeed configuration descriptor. If set to NULL, TinyUSB device will use a default configuration descriptor whose values are set in Kconfig */ }; }; const uint8_t *hs_configuration_descriptor; /*!< Pointer to a HighSpeed configuration descriptor. If set to NULL, TinyUSB device will use a default configuration descriptor whos
最新发布
03-27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值