OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 710|回复: 1

STM32F407 USB描述符 请求的操作不成功。

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2020-5-29
在线时间
3 小时
发表于 2020-7-12 17:10:15 | 显示全部楼层 |阅读模式
3金钱
刚刚接触USB描述符一块 试图在扬声器的描述符上添加麦克风
但是修改后插电脑上 仅检测到USB 连扬声器都无法检测

该设备无法启动(代码10)
{操作失败}
请求的操作不成功。

有大神可以帮我看看问题吗?或教我如何调试USB枚举

  1. __ALIGN_BEGIN static uint8_t USBD_AUDIO_CfgDesc[USB_AUDIO_CONFIG_DESC_SIZ] __ALIGN_END =
  2. {
  3.   /* Configuration 1 */
  4.   0x09,                                 /* bLength */
  5.   USB_DESC_TYPE_CONFIGURATION,          /* bDescriptorType */
  6.   LOBYTE(USB_AUDIO_CONFIG_DESC_SIZ),    /* wTotalLength  109 bytes*/
  7.   HIBYTE(USB_AUDIO_CONFIG_DESC_SIZ),
  8.   0x03,                                 /* bNumInterfaces */
  9.   0x01,                                 /* bConfigurationValue */
  10.   0x00,                                 /* iConfiguration */
  11.   0xC0,                                 /* bmAttributes  BUS Powred*/
  12.   0x32,                                 /* bMaxPower = 100 mA*/
  13.   /* 09 byte*/

  14.   /* Standard interface descriptor */
  15.   AUDIO_INTERFACE_DESC_SIZE,            /* bLength */
  16.   USB_DESC_TYPE_INTERFACE,              /* bDescriptorType */
  17.   0x00,                                 /* bInterfaceNumber */
  18.   0x00,                                 /* bAlternateSetting */
  19.   0x01,                                 /* bNumEndpoints */
  20.   USB_DEVICE_CLASS_AUDIO,               /* bInterfaceClass */
  21.   AUDIO_SUBCLASS_AUDIOCONTROL,          /* bInterfaceSubClass */
  22.   AUDIO_PROTOCOL_UNDEFINED,             /* bInterfaceProtocol */
  23.   0x00,                                 /* iInterface */
  24.   /* 09 byte*/

  25.   /* USB Class-specific AC Interface Descriptor */
  26.   AUDIO_INTERFACE_DESC_SIZE,            /* bLength */
  27.   AUDIO_INTERFACE_DESCRIPTOR_TYPE,      /* bDescriptorType */
  28.   AUDIO_CONTROL_HEADER,                 /* bDescriptorSubtype */
  29.   0x00,          /* 1.00 */             /* bcdADC */
  30.   0x01,
  31.   0x6A,                                 /* wTotalLength = 39*/
  32.   0x00,
  33.   0x01,                                 /* bInCollection */
  34.   0x01,                                 /* baInterfaceNr */
  35.   /* 09 byte*/

  36.   /* USB Speaker Input Terminal Descriptor */
  37.   AUDIO_INPUT_TERMINAL_DESC_SIZE,       /* bLength */
  38.   AUDIO_INTERFACE_DESCRIPTOR_TYPE,      /* bDescriptorType */
  39.   AUDIO_CONTROL_INPUT_TERMINAL,         /* bDescriptorSubtype */
  40.   0x01,                                 /* bTerminalID */
  41.   0x01,                                 /* wTerminalType AUDIO_TERMINAL_USB_STREAMING   0x0101 */
  42.   0x01,
  43.   0x00,                                 /* bAssocTerminal */
  44.   0x01,                                 /* bNrChannels */
  45.   0x00,                                 /* wChannelConfig 0x0000  Mono */
  46.   0x00,
  47.   0x00,                                 /* iChannelNames */
  48.   0x00,                                 /* iTerminal */
  49.   /* 12 byte*/

  50.   /* USB Speaker Audio Feature Unit Descriptor */
  51.   0x09,                                 /* bLength */
  52.   AUDIO_INTERFACE_DESCRIPTOR_TYPE,      /* bDescriptorType */
  53.   AUDIO_CONTROL_FEATURE_UNIT,           /* bDescriptorSubtype */
  54.   REC_FEATURE_UNITID,                   /* bUnitID */
  55.   0x04,                                 /* bSourceID */
  56.   0x01,                                 /* bControlSize */
  57.   AUDIO_CONTROL_MUTE,                   /* bmaControls(0) */
  58.   0,                                    /* bmaControls(1) */
  59.   0x00,                                 /* iTerminal */
  60.   /* 09 byte*/

  61.   /*USB Output Terminal Descriptor */
  62.   0x09,      /* bLength */
  63.   AUDIO_INTERFACE_DESCRIPTOR_TYPE,      /* bDescriptorType */
  64.   AUDIO_CONTROL_OUTPUT_TERMINAL,        /* bDescriptorSubtype */
  65.   0x02,                                 /* bTerminalID */
  66.   0x01,                                 /* wTerminalType  0x0301*/
  67.   0x01,
  68.   0x00,                                 /* bAssocTerminal */
  69.   REC_FEATURE_UNITID,                                 /* bSourceID */
  70.   0x00,                                 /* iTerminal */
  71.   /* 09 byte*/

  72.   /* USB Speaker Audio Feature Unit Descriptor */
  73.   0x09,                                 /* bLength */
  74.   AUDIO_INTERFACE_DESCRIPTOR_TYPE,      /* bDescriptorType */
  75.   AUDIO_CONTROL_FEATURE_UNIT,           /* bDescriptorSubtype */
  76.   PLAY_FEATURE_UNITID,                   /* bUnitID */
  77.   0x0C,                                 /* bSourceID */
  78.   0x01,                                 /* bControlSize */
  79.   AUDIO_CONTROL_MUTE,                   /* bmaControls(0) */
  80.   0,                                    /* bmaControls(1) */
  81.   0x00,                                 /* iTerminal */
  82.         
  83.         /*USB Speaker Output Terminal Descriptor */
  84.   0x09,      /* bLength */
  85.   AUDIO_INTERFACE_DESCRIPTOR_TYPE,      /* bDescriptorType */
  86.   AUDIO_CONTROL_OUTPUT_TERMINAL,        /* bDescriptorSubtype */
  87.   0x03,                                 /* bTerminalID */
  88.   0x02,                                 /* wTerminalType  0x0301*/
  89.   0x04,
  90.   0x00,                                 /* bAssocTerminal */
  91.   PLAY_FEATURE_UNITID,                                 /* bSourceID */
  92.   0x00,                                 /* iTerminal */
  93.   /* 09 byte*/
  94.         
  95.           /* USB microphone Input Terminal Descriptor */
  96.   AUDIO_INPUT_TERMINAL_DESC_SIZE,       /* bLength */
  97.   AUDIO_INTERFACE_DESCRIPTOR_TYPE,      /* bDescriptorType */
  98.   AUDIO_CONTROL_INPUT_TERMINAL,         /* bDescriptorSubtype */
  99.   0x04,                                 /* bTerminalID */
  100.   0x02,                                 /* wTerminalType AUDIO_TERMINAL_USB_STREAMING   0x0101 */
  101.   0x04,
  102.   0x00,                                 /* bAssocTerminal */
  103.   0x01,                                 /* bNrChannels */
  104.   0x00,                                 /* wChannelConfig 0x0000  Mono */
  105.   0x00,
  106.   0x00,                                 /* iChannelNames */
  107.   0x00,                                 /* iTerminal */
  108.   /* 12 byte*/
  109.         
  110.           /* USB microphone Input Terminal Descriptor */
  111.   AUDIO_INPUT_TERMINAL_DESC_SIZE,       /* bLength */
  112.   AUDIO_INTERFACE_DESCRIPTOR_TYPE,      /* bDescriptorType */
  113.   AUDIO_CONTROL_INPUT_TERMINAL,         /* bDescriptorSubtype */
  114.   0x0A,                                 /* bTerminalID */
  115.   0x02,                                 /* wTerminalType AUDIO_TERMINAL_USB_STREAMING   0x0101 */
  116.   0x04,
  117.   0x00,                                 /* bAssocTerminal */
  118.   0x01,                                 /* bNrChannels */
  119.   0x00,                                 /* wChannelConfig 0x0000  Mono */
  120.   0x00,
  121.   0x00,                                 /* iChannelNames */
  122.   0x06,                                 /* iTerminal */
  123.   /* 12 byte*/
  124.         
  125.           /* USB Speaker Audio Feature Unit Descriptor */
  126.   0x09,                                 /* bLength */
  127.   AUDIO_INTERFACE_DESCRIPTOR_TYPE,      /* bDescriptorType */
  128.   AUDIO_CONTROL_FEATURE_UNIT,           /* bDescriptorSubtype */
  129.   0x0B,                   /* bUnitID */
  130.   0x0A,                                 /* bSourceID */
  131.   0x01,                                 /* bControlSize */
  132.   AUDIO_CONTROL_MUTE,                   /* bmaControls(0) */
  133.   0,                                    /* bmaControls(1) */
  134.   0x00,                                 /* iTerminal */
  135.         /* 9 byte*/
  136.         
  137.             /* MU ID 12: Mixer Unit */
  138.     0x0D,               /* bLength */
  139.     0x24,               /* bDescriptorType */
  140.     0x04,               /* bDescriptorSubType */
  141.     0x0C,               /* bUnitID */
  142.     0x02,               /* bNrInPins */
  143.     0x01,               /* bSourceID(1) */
  144.     0x0B,               /* bSourceID(2) */
  145.     0x02,               /* bNrChannels */
  146.     0x03, 0x00,         /* wChannelConfig */
  147.     0x00,               /* iChannelNames */
  148.     0x00,               /* bmControls(0) */
  149.     0x00,               /* iMixer */
  150.         
  151.         
  152.         
  153.   /* USB Speaker Standard AS Interface Descriptor - Audio Streaming Zero Bandwith */
  154.   /* Interface 1, Alternate Setting 0                                             */
  155.   AUDIO_INTERFACE_DESC_SIZE,  /* bLength */
  156.   USB_DESC_TYPE_INTERFACE,        /* bDescriptorType */
  157.   0x01,                                 /* bInterfaceNumber */
  158.   0x00,                                 /* bAlternateSetting */
  159.   0x00,                                 /* bNumEndpoints */
  160.   USB_DEVICE_CLASS_AUDIO,               /* bInterfaceClass */
  161.   AUDIO_SUBCLASS_AUDIOSTREAMING,        /* bInterfaceSubClass */
  162.   AUDIO_PROTOCOL_UNDEFINED,             /* bInterfaceProtocol */
  163.   0x00,                                 /* iInterface */
  164.   /* 09 byte*/

  165.   /* USB Speaker Standard AS Interface Descriptor - Audio Streaming Operational */
  166.   /* Interface 1, Alternate Setting 1                                           */
  167.   AUDIO_INTERFACE_DESC_SIZE,  /* bLength */
  168.   USB_DESC_TYPE_INTERFACE,        /* bDescriptorType */
  169.   0x01,                                 /* bInterfaceNumber */
  170.   0x01,                                 /* bAlternateSetting */
  171.   0x01,                                 /* bNumEndpoints */
  172.   USB_DEVICE_CLASS_AUDIO,               /* bInterfaceClass */
  173.   AUDIO_SUBCLASS_AUDIOSTREAMING,        /* bInterfaceSubClass */
  174.   AUDIO_PROTOCOL_UNDEFINED,             /* bInterfaceProtocol */
  175.   0x00,                                 /* iInterface */
  176.   /* 09 byte*/

  177.   /* USB Speaker Audio Streaming Interface Descriptor */
  178.   AUDIO_STREAMING_INTERFACE_DESC_SIZE,  /* bLength */
  179.   AUDIO_INTERFACE_DESCRIPTOR_TYPE,      /* bDescriptorType */
  180.   AUDIO_STREAMING_GENERAL,              /* bDescriptorSubtype */
  181.   0x02,                                 /* bTerminalLink */
  182.   0x01,                                 /* bDelay */
  183.   0x01,                                 /* wFormatTag AUDIO_FORMAT_PCM  0x0001*/
  184.   0x00,
  185.   /* 07 byte*/

  186.   /* USB Speaker Audio Type I Format Interface Descriptor */
  187.   0x0B,                                 /* bLength */
  188.   AUDIO_INTERFACE_DESCRIPTOR_TYPE,      /* bDescriptorType */
  189.   AUDIO_STREAMING_FORMAT_TYPE,          /* bDescriptorSubtype */
  190.   AUDIO_FORMAT_TYPE_I,                /* bFormatType */
  191.   0x02,                                 /* bNrChannels */
  192.   0x02,                                 /* bSubFrameSize :  2 Bytes per frame (16bits) */
  193.   16,                                   /* bBitResolution (16-bits per sample) */
  194.   0x01,                                 /* bSamFreqType only one frequency supported */
  195.   AUDIO_SAMPLE_FREQ(USBD_AUDIO_FREQ),         /* Audio sampling frequency coded on 3 bytes */
  196.   /* 11 byte*/

  197.   /* Endpoint 1 - Standard Descriptor */
  198.   AUDIO_STANDARD_ENDPOINT_DESC_SIZE,    /* bLength */
  199.   USB_DESC_TYPE_ENDPOINT,               /* bDescriptorType */
  200.   AUDIO_OUT_EP,                         /* bEndpointAddress 1 out endpoint*/
  201.   USBD_EP_TYPE_ISOC,                    /* bmAttributes */
  202.   AUDIO_PACKET_SZE(USBD_AUDIO_FREQ),    /* wMaxPacketSize in Bytes (Freq(Samples)*2(Stereo)*2(HalfWord)) */
  203.   0x01,                                 /* bInterval */
  204.   0x00,                                 /* bRefresh */
  205.   0x00,                                 /* bSynchAddress */
  206.   /* 09 byte*/

  207.   /* Endpoint - Audio Streaming Descriptor*/
  208.   AUDIO_STREAMING_ENDPOINT_DESC_SIZE,   /* bLength */
  209.   AUDIO_ENDPOINT_DESCRIPTOR_TYPE,       /* bDescriptorType */
  210.   AUDIO_ENDPOINT_GENERAL,               /* bDescriptor */
  211.   0x00,                                 /* bmAttributes */
  212.   0x00,                                 /* bLockDelayUnits */
  213.   0x00,                                 /* wLockDelay */
  214.   0x00,
  215.   /* 07 byte*/
  216.         
  217.         
  218.         
  219.           /* USB microphone Standard AS Interface Descriptor - Audio Streaming Zero Bandwith */
  220.   /* Interface 2, Alternate Setting 0                                             */
  221.   AUDIO_INTERFACE_DESC_SIZE,  /* bLength */
  222.   USB_DESC_TYPE_INTERFACE,        /* bDescriptorType */
  223.   0x02,                                 /* bInterfaceNumber */
  224.   0x00,                                 /* bAlternateSetting */
  225.   0x00,                                 /* bNumEndpoints */
  226.   USB_DEVICE_CLASS_AUDIO,               /* bInterfaceClass */
  227.   AUDIO_SUBCLASS_AUDIOSTREAMING,        /* bInterfaceSubClass */
  228.   AUDIO_PROTOCOL_UNDEFINED,             /* bInterfaceProtocol */
  229.   0x00,                                 /* iInterface */
  230.   /* 09 byte*/

  231.   /* USB microphone Standard AS Interface Descriptor - Audio Streaming Operational */
  232.   /* Interface 1, Alternate Setting 1                                           */
  233.   AUDIO_INTERFACE_DESC_SIZE,  /* bLength */
  234.   USB_DESC_TYPE_INTERFACE,        /* bDescriptorType */
  235.   0x02,                                 /* bInterfaceNumber */
  236.   0x01,                                 /* bAlternateSetting */
  237.   0x01,                                 /* bNumEndpoints */
  238.   USB_DEVICE_CLASS_AUDIO,               /* bInterfaceClass */
  239.   AUDIO_SUBCLASS_AUDIOSTREAMING,        /* bInterfaceSubClass */
  240.   AUDIO_PROTOCOL_UNDEFINED,             /* bInterfaceProtocol */
  241.   0x00,                                 /* iInterface */
  242.   /* 09 byte*/

  243.   /* USB microphone Audio Streaming Interface Descriptor */
  244.   AUDIO_STREAMING_INTERFACE_DESC_SIZE,  /* bLength */
  245.   AUDIO_INTERFACE_DESCRIPTOR_TYPE,      /* bDescriptorType */
  246.   AUDIO_STREAMING_GENERAL,              /* bDescriptorSubtype */
  247.   0x01,                                 /* bTerminalLink */
  248.   0x01,                                 /* bDelay */
  249.   0x01,                                 /* wFormatTag AUDIO_FORMAT_PCM  0x0001*/
  250.   0x00,
  251.   /* 07 byte*/

  252.   /* USB microphone Audio Type I Format Interface Descriptor */
  253.   0x0B,                                 /* bLength */
  254.   AUDIO_INTERFACE_DESCRIPTOR_TYPE,      /* bDescriptorType */
  255.   AUDIO_STREAMING_FORMAT_TYPE,          /* bDescriptorSubtype */
  256.   AUDIO_FORMAT_TYPE_I,                /* bFormatType */
  257.   0x02,                                 /* bNrChannels */
  258.   0x02,                                 /* bSubFrameSize :  2 Bytes per frame (16bits) */
  259.   16,                                   /* bBitResolution (16-bits per sample) */
  260.   0x01,                                 /* bSamFreqType only one frequency supported */
  261.   AUDIO_SAMPLE_FREQ(USBD_AUDIO_FREQ),         /* Audio sampling frequency coded on 3 bytes */
  262.   /* 11 byte*/

  263.   /* Endpoint 1 - Standard Descriptor */
  264.   AUDIO_STANDARD_ENDPOINT_DESC_SIZE,    /* bLength */
  265.   USB_DESC_TYPE_ENDPOINT,               /* bDescriptorType */
  266.   AUDIO_IN_EP,                          /* bEndpointAddress 1 out endpoint*/
  267.   USBD_EP_TYPE_ISOC,                    /* bmAttributes */
  268.   AUDIO_PACKET_SZE(USBD_AUDIO_FREQ),    /* wMaxPacketSize in Bytes (Freq(Samples)*2(Stereo)*2(HalfWord)) */
  269.   0x01,                                 /* bInterval */
  270.   0x00,                                 /* bRefresh */
  271.   0x00,                                 /* bSynchAddress */
  272.   /* 09 byte*/

  273.   /* Endpoint - Audio Streaming Descriptor*/
  274.   AUDIO_STREAMING_ENDPOINT_DESC_SIZE,   /* bLength */
  275.   AUDIO_ENDPOINT_DESCRIPTOR_TYPE,       /* bDescriptorType */
  276.   AUDIO_ENDPOINT_GENERAL,               /* bDescriptor */
  277.   0x00,                                 /* bmAttributes */
  278.   0x00,                                 /* bLockDelayUnits */
  279.   0x00,                                 /* wLockDelay */
  280.   0x00,
  281.   /* 07 byte*/
复制代码


4.rar

8.41 MB, 下载次数: 2

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2020-7-13 23:29:54 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-1 00:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表