usb_desc.c
上传用户:yyyd609
上传日期:2022-07-18
资源大小:183k
文件大小:5k
源码类别:

微处理器开发

开发平台:

C/C++

  1.  /******************** (C) COPYRIGHT 2003 STMicroelectronics ********************
  2. * File Name          : usb_desc.c
  3. * Author             : MCD Application Team
  4. * Date First Issued  : 27/10/2003
  5. * Description        : Descriptors for USB Mouse
  6. *
  7. ********************************************************************************/
  8. #include "USB_lib.h"
  9. #include "USB_desc.h"
  10. const BYTE MOUSE_ReportDescriptor[MOUSE_SIZ_REPORT_DESC] = {
  11. 0x05, /* Usage Page(Generic Desktop) */
  12. 0x01,
  13. 0x09, /* Usage(Mouse) */
  14. 0x02,
  15. 0xA1, /* Collection(Logical) */
  16. 0x01,
  17. 0x09, /* Usage(Pointer) */
  18. 0x01,
  19. /* 8 */
  20. 0xA1, /* Collection(Linked) */
  21. 0x00,
  22. 0x05, /* Usage Page(Buttons) */
  23. 0x09,
  24. 0x19, /* Usage Minimum(1) */
  25. 0x01,
  26. 0x29, /* Usage Maximum(3) */
  27. 0x03,
  28. /* 16 */
  29. 0x15, /* Logical Minimum(0) */
  30. 0x00,
  31. 0x25, /* Logical Maximum(1) */
  32. 0x01,
  33. 0x95, /* Report Count(3) */
  34. 0x03,
  35. 0x75, /* Report Size(1) */
  36. 0x01,
  37. /* 24 */
  38. 0x81, /* Input(Variable) */
  39. 0x02,
  40. 0x95, /* Report Count(1) */
  41. 0x01,
  42. 0x75, /* Report Size(5) */
  43. 0x05,
  44. 0x81, /* Input(Constant,Array) */
  45. 0x01,
  46. /* 32 */
  47. 0x05, /* Usage Page(Generic Desktop) */
  48. 0x01,
  49. 0x09, /* Usage(X axis) */
  50. 0x30,
  51. 0x09, /* Usage(Y axis) */
  52. 0x31,
  53. 0x09, /* Usage(Wheel) */
  54. 0x38,
  55. /* 40 */
  56. 0x15,   /* Logical Minimum(-127) */
  57. 0x81,
  58. 0x25, /* Logical Maximum(127) */
  59. 0x7F,
  60. 0x75, /* Report Size(8) */
  61. 0x08,
  62. 0x95, /* Report Count(3) */
  63. 0x03,
  64. /* 48 */
  65. 0x81, /* Input(Variable, Relative) */
  66. 0x06,
  67. 0xC0, /* End Collection */
  68. 0x09,
  69. 0x3c,
  70. 0x05,
  71. 0xff,
  72. 0x09,
  73. /* 56 */
  74. 0x01,
  75. 0x15,
  76. 0x00,
  77. 0x25,
  78. 0x01,
  79. 0x75,
  80. 0x01,
  81. 0x95,
  82. /* 64 */
  83. 0x02,
  84. 0xb1,
  85. 0x22,
  86. 0x75,
  87. 0x06,
  88. 0x95,
  89. 0x01,
  90. 0xb1,
  91. /* 72 */
  92. 0x01,
  93. 0xc0
  94. }; /* MOUSE_ReportDescriptor */
  95. const BYTE MOUSE_DeviceDescriptor[MOUSE_SIZ_DEVICE_DESC] = { /* ST mouse */
  96. 0x12, /* bLength */
  97. 0x01, /* bDescriptorType */
  98. 0x00, /* bcdUSB */
  99. 0x01,
  100. 0x00, /* bDeviceClass */
  101. 0x00, /* bDeviceSubClass */
  102. 0x00, /* bDeviceProtocol */
  103. 0x08, /* bMaxPacketSize0 */
  104. 0x83, /* idVendor (1155) */
  105. 0x04,
  106. 0x01, /* idProduct */
  107. 0x00,
  108. 0x04, /* bcdDevice rel. 1.04 */
  109. 0x01,
  110. 4, /* Index of string descriptor */
  111. /* describing manufacturer */
  112. 42, /* Index of string descriptor */
  113. /* describing product */
  114. 0, /*98,*/ /* Index of string descriptor */
  115. /* describing the device's */
  116. /* serial number */
  117. 0x01 /* bNumConfigurations */
  118. }; /* MOUSE_DeviceDescriptor */
  119. const BYTE MOUSE_ConfigDescriptor[MOUSE_SIZ_CONFIG_DESC] = {
  120. 0x09, /* bLength: Configuation Descriptor size */
  121. 0x02, /* bDescriptorType: Configuration */
  122. MOUSE_SIZ_CONFIG_DESC,
  123. /* wTotalLength: Bytes returned */
  124. 0x00,
  125. 0x01, /* bNumInterfaces: 1 interface */
  126. 0x01, /* bConfigurationValue: */
  127. /* Configuration value */
  128. 0x00, /* iConfiguration: */
  129. /* Index of string descriptor */
  130. /* describing the configuration */
  131. 0xA0, /* bmAttributes: */
  132. /* bus powered, remote-wakeup */
  133. 0x32, /* MaxPower 100 mA: this current is used for detecting Vbus */
  134. /******************** Descriptor of mouse interface ********************/
  135. /* 09 */
  136. 0x09, /* bLength: Interface Descriptor size */
  137. 0x04, /* bDescriptorType: */
  138. /* Interface descriptor type */
  139. 0x00, /* bInterfaceNumber: Number of Interface */
  140. 0x00, /* bAlternateSetting: Alternate setting */
  141. 0x01, /* bNumEndpoints*/
  142. 0x03, /* bInterfaceClass: HID */
  143. 0x01, /* bInterfaceSubClass : 1=BOOT, 0=no boot*/
  144. 0x02, /* nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse*/
  145. 0,     /* iInterface: */
  146. /* Index of string descriptor */
  147. /******************** Descriptor of Mouse HID ********************/
  148. /* 18 */
  149. 0x09, /* bLength: HID Descriptor size */
  150. 0x21, /* bDescriptorType: HID */
  151. 0x00, /* bcdHID: HID Class Spec release number */
  152. 0x01,
  153. 0x00, /* bCountryCode: Hardware target country */
  154. 0x01, /* bNumDescriptors: */
  155. /* Number of HID class descriptors */
  156. /* to follow */
  157. 0x22, /* bDescriptorType */
  158. MOUSE_SIZ_REPORT_DESC,
  159. /* wItemLength: Total length of Report descriptor */
  160. 0x00,
  161. /******************** Descriptor of mouse endpoint ********************/
  162. /* 27 */
  163. 0x07, /* bLength: Endpoint Descriptor size */
  164. 0x05, /* bDescriptorType: */
  165. /* Endpoint descriptor type */
  166. 0x81, /* bEndpointAddress: */
  167. /* Endpoint Address (IN) */
  168. 0x03, /* bmAttributes: Interrupt endpoint */
  169. 0x04, /* wMaxPacketSize: 4 Byte max  */
  170. 0x00,
  171. 0x20, /* bInterval: Polling Interval (32 ms) */
  172. /* 34 */
  173. }; /* MOUSE_ConfigDescriptor */
  174. const BYTE MOUSE_StringDescriptor[MOUSE_SIZ_STRING_DESC] = {
  175. 0x04,
  176. 0x03,
  177. 0x09,
  178. 0x04, /* LangID = 0x0409: U.S. English */
  179. /* 4 */
  180. 38, /* Size of manufaturer string */
  181. 0x03, /* bDescriptorType = String descriptor */
  182. /* Manufacturer: "STMicroelectronics" */
  183. 'S',0, 'T',0, 'M',0, 'i',0, 'c',0, 'r',0, 'o',0, 'e',0,
  184. 'l',0, 'e',0, 'c',0, 't',0, 'r',0, 'o',0, 'n',0, 'i',0,
  185. 'c',0, 's',0,
  186. /* 42 */
  187. 56,
  188. 0x03,
  189. /* Product name: "ARM7   : USB Mouse Tutorial" */
  190. 'A',0, 'R',0, 'M',0, '7',0, ' ',0, ' ',0, ' ',0, ':',0,
  191. ' ',0, 'U',0, 'S',0, 'B',0, ' ',0, 'M',0, 'o',0, 'u',0,
  192. 's',0, 'e',0, ' ',0, 'T',0, 'u',0, 't',0, 'o',0, 'r',0,
  193. 'i',0, 'a',0, 'l',0,
  194. /* 98 */
  195. 28,
  196. 0x03,
  197. /* Serial number: "20072000-0001" */
  198. '2',0, '0',0, '0',0, '7',0, '2',0, '0',0, '0',0, '0',0,
  199. '-',0, '0',0, '0',0, '0',0, '1',0,
  200. /* 126 */
  201. 26,
  202. 0x03,
  203. /* Interface 0: "ST USB Mouse" */
  204. 'S',0, 'T',0, ' ',0, 'U',0, 'S',0, 'B',0, ' ',0, 'M',0,
  205. 'o',0, 'u',0, 's',0, 'e',0,
  206. /* 152 */
  207. }; /* MOUSE_StringDescriptor */