39
39
#define USBD_LANGID_STRING 0x409 /* 1033 US.S English */
40
40
41
41
#ifdef USBD_USE_HID_COMPOSITE
42
- #define USBD_HID_PID 0x5711
43
- #define USBD_HID_PRODUCT_HS_STRING CONCATS(USB_PRODUCT, "HID in HS Mode")
44
- #define USBD_HID_PRODUCT_FS_STRING CONCATS(USB_PRODUCT, "HID in FS Mode")
45
- #define USBD_HID_CONFIGURATION_HS_STRING CONCATS(USB_PRODUCT, "HID Config")
46
- #define USBD_HID_INTERFACE_HS_STRING CONCATS(USB_PRODUCT, "HID Interface")
47
- #define USBD_HID_CONFIGURATION_FS_STRING CONCATS(USB_PRODUCT, "HID Config")
48
- #define USBD_HID_INTERFACE_FS_STRING CONCATS(USB_PRODUCT, "HID Interface")
42
+ #define USBD_CLASS_PID 0x5711
43
+ #define USBD_CLASS_PRODUCT_HS_STRING CONCATS(USB_PRODUCT, "HID in HS Mode")
44
+ #define USBD_CLASS_PRODUCT_FS_STRING CONCATS(USB_PRODUCT, "HID in FS Mode")
45
+ #define USBD_CLASS_CONFIGURATION_HS_STRING CONCATS(USB_PRODUCT, "HID Config")
46
+ #define USBD_CLASS_INTERFACE_HS_STRING CONCATS(USB_PRODUCT, "HID Interface")
47
+ #define USBD_CLASS_CONFIGURATION_FS_STRING CONCATS(USB_PRODUCT, "HID Config")
48
+ #define USBD_CLASS_INTERFACE_FS_STRING CONCATS(USB_PRODUCT, "HID Interface")
49
49
#endif /* USBD_USE_HID_COMPOSITE */
50
50
51
51
#ifdef USBD_USE_CDC
52
- #define USBD_CDC_PID 0x5740
53
- #define USBD_CDC_PRODUCT_HS_STRING CONCATS(USB_PRODUCT, "CDC in HS Mode")
54
- #define USBD_CDC_PRODUCT_FS_STRING CONCATS(USB_PRODUCT, "CDC in FS Mode")
55
- #define USBD_CDC_CONFIGURATION_HS_STRING CONCATS(USB_PRODUCT, "CDC Config")
56
- #define USBD_CDC_INTERFACE_HS_STRING CONCATS(USB_PRODUCT, "CDC Interface")
57
- #define USBD_CDC_CONFIGURATION_FS_STRING CONCATS(USB_PRODUCT, "CDC Config")
58
- #define USBD_CDC_INTERFACE_FS_STRING CONCATS(USB_PRODUCT, "CDC Interface")
52
+ #define USBD_CLASS_PID 0x5740
53
+ #define USBD_CLASS_PRODUCT_HS_STRING CONCATS(USB_PRODUCT, "CDC in HS Mode")
54
+ #define USBD_CLASS_PRODUCT_FS_STRING CONCATS(USB_PRODUCT, "CDC in FS Mode")
55
+ #define USBD_CLASS_CONFIGURATION_HS_STRING CONCATS(USB_PRODUCT, "CDC Config")
56
+ #define USBD_CLASS_INTERFACE_HS_STRING CONCATS(USB_PRODUCT, "CDC Interface")
57
+ #define USBD_CLASS_CONFIGURATION_FS_STRING CONCATS(USB_PRODUCT, "CDC Config")
58
+ #define USBD_CLASS_INTERFACE_FS_STRING CONCATS(USB_PRODUCT, "CDC Interface")
59
59
#endif /* USBD_USE_CDC */
60
60
61
61
/* Private macro -------------------------------------------------------------*/
@@ -66,37 +66,29 @@ uint8_t *USBD_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *lengt
66
66
uint8_t * USBD_SerialStrDescriptor (USBD_SpeedTypeDef speed , uint16_t * length );
67
67
68
68
/* Class specific */
69
- #ifdef USBD_USE_HID_COMPOSITE
70
- uint8_t * USBD_HID_DeviceDescriptor (USBD_SpeedTypeDef speed , uint16_t * length );
71
- uint8_t * USBD_HID_ProductStrDescriptor (USBD_SpeedTypeDef speed , uint16_t * length );
72
- uint8_t * USBD_HID_ConfigStrDescriptor (USBD_SpeedTypeDef speed , uint16_t * length );
73
- uint8_t * USBD_HID_InterfaceStrDescriptor (USBD_SpeedTypeDef speed , uint16_t * length );
74
- #endif /* USBD_USE_HID_COMPOSITE */
75
- #ifdef USBD_USE_CDC
76
- uint8_t * USBD_CDC_DeviceDescriptor (USBD_SpeedTypeDef speed , uint16_t * length );
77
- uint8_t * USBD_CDC_ProductStrDescriptor (USBD_SpeedTypeDef speed , uint16_t * length );
78
- uint8_t * USBD_CDC_ConfigStrDescriptor (USBD_SpeedTypeDef speed , uint16_t * length );
79
- uint8_t * USBD_CDC_InterfaceStrDescriptor (USBD_SpeedTypeDef speed , uint16_t * length );
80
- #endif /* USBD_USE_CDC */
69
+ uint8_t * USBD_Class_DeviceDescriptor (USBD_SpeedTypeDef speed , uint16_t * length );
70
+ uint8_t * USBD_Class_ProductStrDescriptor (USBD_SpeedTypeDef speed , uint16_t * length );
71
+ uint8_t * USBD_Class_ConfigStrDescriptor (USBD_SpeedTypeDef speed , uint16_t * length );
72
+ uint8_t * USBD_Class_InterfaceStrDescriptor (USBD_SpeedTypeDef speed , uint16_t * length );
81
73
82
74
#ifdef USB_SUPPORT_USER_STRING_DESC
83
75
uint8_t * USBD_Class_USRStringDesc (USBD_SpeedTypeDef speed , uint8_t idx , uint16_t * length );
84
76
#endif /* USB_SUPPORT_USER_STRING_DESC */
85
77
86
78
/* Private variables ---------------------------------------------------------*/
87
- #ifdef USBD_USE_HID_COMPOSITE
88
- USBD_DescriptorsTypeDef HID_Desc = {
89
- USBD_HID_DeviceDescriptor ,
79
+ USBD_DescriptorsTypeDef USBD_Desc = {
80
+ USBD_Class_DeviceDescriptor ,
90
81
USBD_LangIDStrDescriptor ,
91
82
USBD_ManufacturerStrDescriptor ,
92
- USBD_HID_ProductStrDescriptor ,
83
+ USBD_Class_ProductStrDescriptor ,
93
84
USBD_SerialStrDescriptor ,
94
- USBD_HID_ConfigStrDescriptor ,
95
- USBD_HID_InterfaceStrDescriptor ,
85
+ USBD_Class_ConfigStrDescriptor ,
86
+ USBD_Class_InterfaceStrDescriptor ,
96
87
};
97
88
89
+ #ifdef USBD_USE_HID_COMPOSITE
98
90
/* USB Standard Device Descriptor */
99
- __ALIGN_BEGIN uint8_t USBD_HID_DeviceDesc [USB_LEN_DEV_DESC ] __ALIGN_END = {
91
+ __ALIGN_BEGIN uint8_t USBD_Class_DeviceDesc [USB_LEN_DEV_DESC ] __ALIGN_END = {
100
92
0x12 , /* bLength */
101
93
USB_DESC_TYPE_DEVICE , /* bDescriptorType */
102
94
0x00 , /* bcdUSB */
@@ -107,8 +99,8 @@ __ALIGN_BEGIN uint8_t USBD_HID_DeviceDesc[USB_LEN_DEV_DESC] __ALIGN_END = {
107
99
USB_MAX_EP0_SIZE , /* bMaxPacketSize */
108
100
LOBYTE (USBD_VID ), /* idVendor */
109
101
HIBYTE (USBD_VID ), /* idVendor */
110
- LOBYTE (USBD_HID_PID ), /* idVendor */
111
- HIBYTE (USBD_HID_PID ), /* idVendor */
102
+ LOBYTE (USBD_CLASS_PID ), /* idVendor */
103
+ HIBYTE (USBD_CLASS_PID ), /* idVendor */
112
104
0x00 , /* bcdDevice rel. 2.00 */
113
105
0x02 ,
114
106
USBD_IDX_MFC_STR , /* Index of manufacturer string */
@@ -119,18 +111,8 @@ __ALIGN_BEGIN uint8_t USBD_HID_DeviceDesc[USB_LEN_DEV_DESC] __ALIGN_END = {
119
111
#endif /* USBD_USE_HID_COMPOSITE */
120
112
121
113
#ifdef USBD_USE_CDC
122
- USBD_DescriptorsTypeDef CDC_Desc = {
123
- USBD_CDC_DeviceDescriptor ,
124
- USBD_LangIDStrDescriptor ,
125
- USBD_ManufacturerStrDescriptor ,
126
- USBD_CDC_ProductStrDescriptor ,
127
- USBD_SerialStrDescriptor ,
128
- USBD_CDC_ConfigStrDescriptor ,
129
- USBD_CDC_InterfaceStrDescriptor ,
130
- };
131
-
132
114
/* USB Standard Device Descriptor */
133
- __ALIGN_BEGIN uint8_t USBD_CDC_DeviceDesc [USB_LEN_DEV_DESC ] __ALIGN_END = {
115
+ __ALIGN_BEGIN uint8_t USBD_Class_DeviceDesc [USB_LEN_DEV_DESC ] __ALIGN_END = {
134
116
0x12 , /* bLength */
135
117
USB_DESC_TYPE_DEVICE , /* bDescriptorType */
136
118
0x00 , /* bcdUSB */
@@ -141,8 +123,8 @@ __ALIGN_BEGIN uint8_t USBD_CDC_DeviceDesc[USB_LEN_DEV_DESC] __ALIGN_END = {
141
123
USB_MAX_EP0_SIZE , /* bMaxPacketSize */
142
124
LOBYTE (USBD_VID ), /* idVendor */
143
125
HIBYTE (USBD_VID ), /* idVendor */
144
- LOBYTE (USBD_CDC_PID ), /* idVendor */
145
- HIBYTE (USBD_CDC_PID ), /* idVendor */
126
+ LOBYTE (USBD_CLASS_PID ), /* idVendor */
127
+ HIBYTE (USBD_CLASS_PID ), /* idVendor */
146
128
0x00 , /* bcdDevice rel. 2.00 */
147
129
0x02 ,
148
130
USBD_IDX_MFC_STR , /* Index of manufacturer string */
@@ -177,22 +159,13 @@ static void Get_SerialNum(void);
177
159
* @param length: Pointer to data length variable
178
160
* @retval Pointer to descriptor buffer
179
161
*/
180
- #ifdef USBD_USE_HID_COMPOSITE
181
- uint8_t * USBD_HID_DeviceDescriptor (USBD_SpeedTypeDef speed , uint16_t * length )
162
+ uint8_t * USBD_Class_DeviceDescriptor (USBD_SpeedTypeDef speed , uint16_t * length )
182
163
{
183
164
UNUSED (speed );
184
- * length = sizeof (USBD_HID_DeviceDesc );
185
- return (uint8_t * )USBD_HID_DeviceDesc ;
165
+ * length = sizeof (USBD_Class_DeviceDesc );
166
+ return (uint8_t * )USBD_Class_DeviceDesc ;
186
167
}
187
- #endif
188
- #ifdef USBD_USE_CDC
189
- uint8_t * USBD_CDC_DeviceDescriptor (USBD_SpeedTypeDef speed , uint16_t * length )
190
- {
191
- UNUSED (speed );
192
- * length = sizeof (USBD_CDC_DeviceDesc );
193
- return (uint8_t * )USBD_CDC_DeviceDesc ;
194
- }
195
- #endif
168
+
196
169
/**
197
170
* @brief Returns the LangID string descriptor.
198
171
* @param speed: Current device speed
@@ -212,28 +185,15 @@ uint8_t *USBD_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
212
185
* @param length: Pointer to data length variable
213
186
* @retval Pointer to descriptor buffer
214
187
*/
215
- #ifdef USBD_USE_HID_COMPOSITE
216
- uint8_t * USBD_HID_ProductStrDescriptor (USBD_SpeedTypeDef speed , uint16_t * length )
188
+ uint8_t * USBD_Class_ProductStrDescriptor (USBD_SpeedTypeDef speed , uint16_t * length )
217
189
{
218
190
if (speed == USBD_SPEED_HIGH ) {
219
- USBD_GetString ((uint8_t * )USBD_HID_PRODUCT_HS_STRING , USBD_StrDesc , length );
191
+ USBD_GetString ((uint8_t * )USBD_CLASS_PRODUCT_HS_STRING , USBD_StrDesc , length );
220
192
} else {
221
- USBD_GetString ((uint8_t * )USBD_HID_PRODUCT_FS_STRING , USBD_StrDesc , length );
193
+ USBD_GetString ((uint8_t * )USBD_CLASS_PRODUCT_FS_STRING , USBD_StrDesc , length );
222
194
}
223
195
return USBD_StrDesc ;
224
196
}
225
- #endif /* USBD_USE_HID_COMPOSITE */
226
- #ifdef USBD_USE_CDC
227
- uint8_t * USBD_CDC_ProductStrDescriptor (USBD_SpeedTypeDef speed , uint16_t * length )
228
- {
229
- if (speed == USBD_SPEED_HIGH ) {
230
- USBD_GetString ((uint8_t * )USBD_CDC_PRODUCT_HS_STRING , USBD_StrDesc , length );
231
- } else {
232
- USBD_GetString ((uint8_t * )USBD_CDC_PRODUCT_FS_STRING , USBD_StrDesc , length );
233
- }
234
- return USBD_StrDesc ;
235
- }
236
- #endif /* USBD_USE_CDC */
237
197
238
198
/**
239
199
* @brief Returns the manufacturer string descriptor.
@@ -271,57 +231,31 @@ uint8_t *USBD_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
271
231
* @param length: Pointer to data length variable
272
232
* @retval Pointer to descriptor buffer
273
233
*/
274
- #ifdef USBD_USE_HID_COMPOSITE
275
- uint8_t * USBD_HID_ConfigStrDescriptor (USBD_SpeedTypeDef speed , uint16_t * length )
276
- {
277
- if (speed == USBD_SPEED_HIGH ) {
278
- USBD_GetString ((uint8_t * )USBD_HID_CONFIGURATION_HS_STRING , USBD_StrDesc , length );
279
- } else {
280
- USBD_GetString ((uint8_t * )USBD_HID_CONFIGURATION_FS_STRING , USBD_StrDesc , length );
281
- }
282
- return USBD_StrDesc ;
283
- }
284
- #endif /* USBD_USE_HID_COMPOSITE */
285
- #ifdef USBD_USE_CDC
286
- uint8_t * USBD_CDC_ConfigStrDescriptor (USBD_SpeedTypeDef speed , uint16_t * length )
234
+ uint8_t * USBD_Class_ConfigStrDescriptor (USBD_SpeedTypeDef speed , uint16_t * length )
287
235
{
288
236
if (speed == USBD_SPEED_HIGH ) {
289
- USBD_GetString ((uint8_t * )USBD_CDC_CONFIGURATION_HS_STRING , USBD_StrDesc , length );
237
+ USBD_GetString ((uint8_t * )USBD_CLASS_CONFIGURATION_HS_STRING , USBD_StrDesc , length );
290
238
} else {
291
- USBD_GetString ((uint8_t * )USBD_CDC_CONFIGURATION_FS_STRING , USBD_StrDesc , length );
239
+ USBD_GetString ((uint8_t * )USBD_CLASS_CONFIGURATION_FS_STRING , USBD_StrDesc , length );
292
240
}
293
241
return USBD_StrDesc ;
294
242
}
295
- #endif /* USBD_USE_CDC */
296
243
297
244
/**
298
245
* @brief Returns the interface string descriptor.
299
246
* @param speed: Current device speed
300
247
* @param length: Pointer to data length variable
301
248
* @retval Pointer to descriptor buffer
302
249
*/
303
- #ifdef USBD_USE_HID_COMPOSITE
304
- uint8_t * USBD_HID_InterfaceStrDescriptor (USBD_SpeedTypeDef speed , uint16_t * length )
305
- {
306
- if (speed == USBD_SPEED_HIGH ) {
307
- USBD_GetString ((uint8_t * )USBD_HID_INTERFACE_HS_STRING , USBD_StrDesc , length );
308
- } else {
309
- USBD_GetString ((uint8_t * )USBD_HID_INTERFACE_FS_STRING , USBD_StrDesc , length );
310
- }
311
- return USBD_StrDesc ;
312
- }
313
- #endif /* USBD_USE_HID_COMPOSITE */
314
- #ifdef USBD_USE_CDC
315
- uint8_t * USBD_CDC_InterfaceStrDescriptor (USBD_SpeedTypeDef speed , uint16_t * length )
250
+ uint8_t * USBD_Class_InterfaceStrDescriptor (USBD_SpeedTypeDef speed , uint16_t * length )
316
251
{
317
252
if (speed == USBD_SPEED_HIGH ) {
318
- USBD_GetString ((uint8_t * )USBD_CDC_INTERFACE_HS_STRING , USBD_StrDesc , length );
253
+ USBD_GetString ((uint8_t * )USBD_CLASS_INTERFACE_HS_STRING , USBD_StrDesc , length );
319
254
} else {
320
- USBD_GetString ((uint8_t * )USBD_CDC_INTERFACE_FS_STRING , USBD_StrDesc , length );
255
+ USBD_GetString ((uint8_t * )USBD_CLASS_INTERFACE_FS_STRING , USBD_StrDesc , length );
321
256
}
322
257
return USBD_StrDesc ;
323
258
}
324
- #endif /* USBD_USE_CDC */
325
259
326
260
/**
327
261
* @brief Create the serial number string descriptor
0 commit comments