usb_spec.h 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. // -----------------------------------------------------------------------------
  2. // USB Library "usblib"
  3. // Target: for lpc17xx
  4. // Author: Sychov A.
  5. // Date: 12/10/2018
  6. // Version: 1.0
  7. // -----------------------------------------------------------------------------
  8. // File: USB-standard header
  9. // Version: 1.0
  10. // -----------------------------------------------------------------------------
  11. #ifndef _USBSPEC_H_
  12. #define _USBSPEC_H_
  13. #include <stdint.h>
  14. #include "usbd_def.h"
  15. #pragma pack( push, 1 )
  16. struct _USB_DESCRIPTOR_HEADER
  17. {
  18. uint8_t bLength;
  19. uint8_t bDescriptorType;
  20. };
  21. #pragma pack(pop)
  22. typedef struct _USB_DESCRIPTOR_HEADER sUSBDescriptorHeader_t;
  23. typedef USBD_SetupReqTypedef tUSBSetupPacket_t;
  24. //-- USB Standard Configuration Descriptor
  25. #pragma pack( push, 1 )
  26. struct _USB_CONFIGURATION_DESCRIPTOR
  27. {
  28. uint8_t bLength;
  29. uint8_t bDescriptorType;
  30. uint16_t wTotalLength;
  31. uint8_t bNumInterfaces;
  32. uint8_t bConfigurationValue;
  33. uint8_t iConfiguration;
  34. uint8_t bmAttributes;
  35. uint8_t MaxPower;
  36. };
  37. typedef struct _USB_CONFIGURATION_DESCRIPTOR sUSBConfigurationDescriptor_t;
  38. #pragma pack(pop)
  39. //-- USB Standard Interface Descriptor
  40. #pragma pack( push, 1 )
  41. struct _USB_INTERFACE_DESCRIPTOR
  42. {
  43. uint8_t bLength;
  44. uint8_t bDescriptorType;
  45. uint8_t bInterfaceNumber;
  46. uint8_t bAlternateSetting;
  47. uint8_t bNumEndpoints;
  48. uint8_t bInterfaceClass;
  49. uint8_t bInterfaceSubClass;
  50. uint8_t bInterfaceProtocol;
  51. uint8_t iInterface;
  52. };
  53. typedef struct _USB_INTERFACE_DESCRIPTOR sUSBInterfaceDescriptor_t;
  54. #pragma pack(pop)
  55. //-- USB Standard Endpoint Descriptor
  56. #pragma pack( push, 1 )
  57. struct _USB_ENDPOINT_DESCRIPTOR
  58. {
  59. uint8_t bLength;
  60. uint8_t bDescriptorType;
  61. uint8_t bEndpointAddress;
  62. uint8_t bmAttributes;
  63. uint16_t wMaxPacketSize;
  64. uint8_t bInterval;
  65. };
  66. typedef struct _USB_ENDPOINT_DESCRIPTOR sUSBEndpointDescriptor_t;
  67. #pragma pack(pop)
  68. #define USB_LANG_EN 0x0409
  69. #define USB_LANG_RU 0x0419
  70. #endif