#define LOBYTE(x) ((uint8_t)(x & 0x00FF)) #define HIBYTE(x) ((uint8_t)((x & 0xFF00) >>8)) #define USBD_VID 0x0483 #define USBD_PID 0x5730 #define USB_DEVICE_DESCRIPTOR_TYPE 0x01 #define USB_CONFIGURATION_DESCRIPTOR_TYPE 0x02 #define USB_STRING_DESCRIPTOR_TYPE 0x03 #define USB_INTERFACE_DESCRIPTOR_TYPE 0x04 #define USB_ENDPOINT_DESCRIPTOR_TYPE 0x05 #define USB_SIZ_DEVICE_DESC 18 #define USB_SIZ_STRING_LANGID 4 #define USB_OTG_MAX_EP0_SIZE 64 #define USBD_IDX_LANGID_STR 0x00 #define USBD_IDX_MFC_STR 0x01 #define USBD_IDX_PRODUCT_STR 0x02 #define USBD_IDX_SERIAL_STR 0x03 #define USBD_IDX_CONFIG_STR 0x04 #define USBD_IDX_INTERFACE_STR 0x05 #define AUDIO_TOTAL_IF_NUM 0x02 #define USBD_CFG_MAX_NUM 1 #define USBD_ITF_MAX_NUM 1 uint8_t USBD_DeviceDesc[USB_SIZ_DEVICE_DESC] = { 0x12, /*bLength */ USB_DEVICE_DESCRIPTOR_TYPE, /*bDescriptorType = 0x01 */ 0x00, /*bcdUSB USB 2.0 */ 0x02, 0x00, /*bDeviceClass */ 0x00, /*bDeviceSubClass */ 0x00, /*bDeviceProtocol */ USB_OTG_MAX_EP0_SIZE, /*bMaxPacketSize = 64 */ LOBYTE(USBD_VID), /*idVendor */ HIBYTE(USBD_VID), /*idVendor */ LOBYTE(USBD_PID), /*idVendor */ HIBYTE(USBD_PID), /*idVendor */ 0x20, /*bcdDevice v1.20 */ 0x01, USBD_IDX_MFC_STR, /*Index of manufacturer string */ USBD_IDX_PRODUCT_STR, /*Index of product string */ USBD_IDX_SERIAL_STR, /*Index of serial number string */ USBD_CFG_MAX_NUM /*bNumConfigurations */ }