STM32_USB_Device_Library
Select one of the symbols to view example projects that use it.
Symbol previews are coming soon...
Outline
#define __USBD_DEF_H
#include "usbd_conf.h"
#define NULL
#define USBD_MAX_NUM_INTERFACES
#define USBD_MAX_NUM_CONFIGURATION
#define USBD_MAX_SUPPORTED_CLASS
#define USBD_MAX_SUPPORTED_CLASS
#define USBD_MAX_CLASS_ENDPOINTS
#define USBD_MAX_CLASS_INTERFACES
#define USBD_LPM_ENABLED
#define USBD_SELF_POWERED
#define USBD_MAX_POWER
#define USBD_SUPPORT_USER_STRING_DESC
#define USBD_CLASS_USER_STRING_DESC
#define USB_LEN_DEV_QUALIFIER_DESC
#define USB_LEN_DEV_DESC
#define USB_LEN_CFG_DESC
#define USB_LEN_IF_DESC
#define USB_LEN_EP_DESC
#define USB_LEN_OTG_DESC
#define USB_LEN_LANGID_STR_DESC
#define USB_LEN_OTHER_SPEED_DESC_SIZ
#define USBD_IDX_LANGID_STR
#define USBD_IDX_MFC_STR
#define USBD_IDX_PRODUCT_STR
#define USBD_IDX_SERIAL_STR
#define USBD_IDX_CONFIG_STR
#define USBD_IDX_INTERFACE_STR
#define USB_REQ_TYPE_STANDARD
#define USB_REQ_TYPE_CLASS
#define USB_REQ_TYPE_VENDOR
#define USB_REQ_TYPE_MASK
#define USB_REQ_RECIPIENT_DEVICE
#define USB_REQ_RECIPIENT_INTERFACE
#define USB_REQ_RECIPIENT_ENDPOINT
#define USB_REQ_RECIPIENT_MASK
#define USB_REQ_GET_STATUS
#define USB_REQ_CLEAR_FEATURE
#define USB_REQ_SET_FEATURE
#define USB_REQ_SET_ADDRESS
#define USB_REQ_GET_DESCRIPTOR
#define USB_REQ_SET_DESCRIPTOR
#define USB_REQ_GET_CONFIGURATION
#define USB_REQ_SET_CONFIGURATION
#define USB_REQ_GET_INTERFACE
#define USB_REQ_SET_INTERFACE
#define USB_REQ_SYNCH_FRAME
#define USB_DESC_TYPE_DEVICE
#define USB_DESC_TYPE_CONFIGURATION
#define USB_DESC_TYPE_STRING
#define USB_DESC_TYPE_INTERFACE
#define USB_DESC_TYPE_ENDPOINT
#define USB_DESC_TYPE_DEVICE_QUALIFIER
#define USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION
#define USB_DESC_TYPE_IAD
#define USB_DESC_TYPE_BOS
#define USB_CONFIG_REMOTE_WAKEUP
#define USB_CONFIG_SELF_POWERED
#define USB_FEATURE_EP_HALT
#define USB_FEATURE_REMOTE_WAKEUP
#define USB_FEATURE_TEST_MODE
#define USB_DEVICE_CAPABITY_TYPE
#define USB_CONF_DESC_SIZE
#define USB_IF_DESC_SIZE
#define USB_EP_DESC_SIZE
#define USB_IAD_DESC_SIZE
#define USB_HS_MAX_PACKET_SIZE
#define USB_FS_MAX_PACKET_SIZE
#define USB_MAX_EP0_SIZE
#define USBD_STATE_DEFAULT
#define USBD_STATE_ADDRESSED
#define USBD_STATE_CONFIGURED
#define USBD_STATE_SUSPENDED
#define USBD_EP0_IDLE
#define USBD_EP0_SETUP
#define USBD_EP0_DATA_IN
#define USBD_EP0_DATA_OUT
#define USBD_EP0_STATUS_IN
#define USBD_EP0_STATUS_OUT
#define USBD_EP0_STALL
#define USBD_EP_TYPE_CTRL
#define USBD_EP_TYPE_ISOC
#define USBD_EP_TYPE_BULK
#define USBD_EP_TYPE_INTR
#define USBD_EP_IN
#define USBD_EP_OUT
#define USBD_FUNC_DESCRIPTOR_TYPE
#define USBD_DESC_SUBTYPE_ACM
#define USBD_DESC_ECM_BCD_LOW
#define USBD_DESC_ECM_BCD_HIGH
usb_setup_req
bmRequest
bRequest
wValue
wIndex
wLength
USBD_ConfigDescTypeDef
bLength
bDescriptorType
wTotalLength
bNumInterfaces
bConfigurationValue
iConfiguration
bmAttributes
bMaxPower
USBD_BosDescTypeDef
bLength
bDescriptorType
wTotalLength
bNumDeviceCaps
USBD_EpDescTypeDef
bLength
bDescriptorType
bEndpointAddress
bmAttributes
wMaxPacketSize
bInterval
USBD_DescHeaderTypeDef
bLength
bDescriptorType
bDescriptorSubType
_USBD_HandleTypeDef
_Device_cb
Init
DeInit
Setup
EP0_TxSent
EP0_RxReady
DataIn
DataOut
SOF
IsoINIncomplete
IsoOUTIncomplete
GetHSConfigDescriptor
GetFSConfigDescriptor
GetOtherSpeedConfigDescriptor
GetDeviceQualifierDescriptor
USBD_SpeedTypeDef
USBD_SPEED_HIGH
USBD_SPEED_FULL
USBD_SPEED_LOW
USBD_StatusTypeDef
USBD_OK
USBD_BUSY
USBD_EMEM
USBD_FAIL
USBD_DescriptorsTypeDef
GetDeviceDescriptor
GetLangIDStrDescriptor
GetManufacturerStrDescriptor
GetProductStrDescriptor
GetSerialStrDescriptor
GetConfigurationStrDescriptor
GetInterfaceStrDescriptor
USBD_EndpointTypeDef
status
total_length
rem_length
maxpacket
is_used
bInterval
_USBD_HandleTypeDef
id
dev_config
dev_default_config
dev_config_status
dev_speed
ep_in
ep_out
ep0_state
ep0_data_len
dev_state
dev_old_state
dev_address
dev_connection_status
dev_test_mode
dev_remote_wakeup
ConfIdx
request
pDesc
pClass
pClassData
pClassDataCmsit
pUserData
pData
pBosDesc
pConfDesc
classId
NumClasses
USBD_EPDirectionTypeDef
OUT
IN
USBD_CDC_NotifCodeTypeDef
NETWORK_CONNECTION
RESPONSE_AVAILABLE
CONNECTION_SPEED_CHANGE
SWAPBYTE(uint8_t *)
#define LOBYTE
#define HIBYTE
#define MIN
#define MAX
#define __weak
#define __packed
#define __ALIGN_END
#define __ALIGN_BEGIN
#define __ALIGN_END
#define __ALIGN_BEGIN
#define __ALIGN_BEGIN
Files
loading...
SourceVu
STM32 Libraries and Samples
STM32_USB_Device_Library
Core/Inc/usbd_def.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
/**
******************************************************************************
* @file usbd_def.h
* @author MCD Application Team
* @brief General defines for the usb device library
******************************************************************************
* @attention
*
* Copyright (c) 2015 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* ... */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef
__USBD_DEF_H
#define
__USBD_DEF_H
#ifdef
__cplusplus
extern
"C"
{
#endif
/* Includes ------------------------------------------------------------------*/
#include
"
usbd_conf.h"
/** @addtogroup STM32_USBD_DEVICE_LIBRARY
* @{
*/
/* ... */
/** @defgroup USB_DEF
* @brief general defines for the usb device library file
* @{
*/
/* ... */
/** @defgroup USB_DEF_Exported_Defines
* @{
*/
/* ... */
#ifndef
NULL
#define
NULL
0U
#endif
/* NULL */
#ifndef
USBD_MAX_NUM_INTERFACES
#define
USBD_MAX_NUM_INTERFACES
1U
#endif
/* USBD_MAX_NUM_CONFIGURATION */
#ifndef
USBD_MAX_NUM_CONFIGURATION
#define
USBD_MAX_NUM_CONFIGURATION
1U
#endif
/* USBD_MAX_NUM_CONFIGURATION */
#ifdef
USE_USBD_COMPOSITE
#ifndef
USBD_MAX_SUPPORTED_CLASS
#define
USBD_MAX_SUPPORTED_CLASS
4U
#endif
/* USBD_MAX_SUPPORTED_CLASS */
/* ... */
#else
#ifndef
USBD_MAX_SUPPORTED_CLASS
#define
USBD_MAX_SUPPORTED_CLASS
1U
#endif
/* USBD_MAX_SUPPORTED_CLASS */
/* ... */
#endif
/* USE_USBD_COMPOSITE */
#ifndef
USBD_MAX_CLASS_ENDPOINTS
#define
USBD_MAX_CLASS_ENDPOINTS
5U
#endif
/* USBD_MAX_CLASS_ENDPOINTS */
#ifndef
USBD_MAX_CLASS_INTERFACES
#define
USBD_MAX_CLASS_INTERFACES
5U
#endif
/* USBD_MAX_CLASS_INTERFACES */
#ifndef
USBD_LPM_ENABLED
#define
USBD_LPM_ENABLED
0U
#endif
/* USBD_LPM_ENABLED */
#ifndef
USBD_SELF_POWERED
#define
USBD_SELF_POWERED
1U
#endif
/*USBD_SELF_POWERED */
#ifndef
USBD_MAX_POWER
#define
USBD_MAX_POWER
0x32U
/* 100 mA */
#endif
/* USBD_MAX_POWER */
#ifndef
USBD_SUPPORT_USER_STRING_DESC
#define
USBD_SUPPORT_USER_STRING_DESC
0U
#endif
/* USBD_SUPPORT_USER_STRING_DESC */
#ifndef
USBD_CLASS_USER_STRING_DESC
#define
USBD_CLASS_USER_STRING_DESC
0U
#endif
/* USBD_CLASS_USER_STRING_DESC */
#define
USB_LEN_DEV_QUALIFIER_DESC
0x0AU
#define
USB_LEN_DEV_DESC
0x12U
#define
USB_LEN_CFG_DESC
0x09U
#define
USB_LEN_IF_DESC
0x09U
#define
USB_LEN_EP_DESC
0x07U
#define
USB_LEN_OTG_DESC
0x03U
#define
USB_LEN_LANGID_STR_DESC
0x04U
#define
USB_LEN_OTHER_SPEED_DESC_SIZ
0x09U
#define
USBD_IDX_LANGID_STR
0x00U
#define
USBD_IDX_MFC_STR
0x01U
#define
USBD_IDX_PRODUCT_STR
0x02U
#define
USBD_IDX_SERIAL_STR
0x03U
#define
USBD_IDX_CONFIG_STR
0x04U
#define
USBD_IDX_INTERFACE_STR
0x05U
#define
USB_REQ_TYPE_STANDARD
0x00U
#define
USB_REQ_TYPE_CLASS
0x20U
#define
USB_REQ_TYPE_VENDOR
0x40U
#define
USB_REQ_TYPE_MASK
0x60U
#define
USB_REQ_RECIPIENT_DEVICE
0x00U
#define
USB_REQ_RECIPIENT_INTERFACE
0x01U
#define
USB_REQ_RECIPIENT_ENDPOINT
0x02U
#define
USB_REQ_RECIPIENT_MASK
0x03U
#define
USB_REQ_GET_STATUS
0x00U
#define
USB_REQ_CLEAR_FEATURE
0x01U
#define
USB_REQ_SET_FEATURE
0x03U
#define
USB_REQ_SET_ADDRESS
0x05U
#define
USB_REQ_GET_DESCRIPTOR
0x06U
#define
USB_REQ_SET_DESCRIPTOR
0x07U
#define
USB_REQ_GET_CONFIGURATION
0x08U
#define
USB_REQ_SET_CONFIGURATION
0x09U
#define
USB_REQ_GET_INTERFACE
0x0AU
#define
USB_REQ_SET_INTERFACE
0x0BU
#define
USB_REQ_SYNCH_FRAME
0x0CU
#define
USB_DESC_TYPE_DEVICE
0x01U
#define
USB_DESC_TYPE_CONFIGURATION
0x02U
#define
USB_DESC_TYPE_STRING
0x03U
#define
USB_DESC_TYPE_INTERFACE
0x04U
#define
USB_DESC_TYPE_ENDPOINT
0x05U
#define
USB_DESC_TYPE_DEVICE_QUALIFIER
0x06U
#define
USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION
0x07U
#define
USB_DESC_TYPE_IAD
0x0BU
#define
USB_DESC_TYPE_BOS
0x0FU
#define
USB_CONFIG_REMOTE_WAKEUP
0x02U
#define
USB_CONFIG_SELF_POWERED
0x01U
#define
USB_FEATURE_EP_HALT
0x00U
#define
USB_FEATURE_REMOTE_WAKEUP
0x01U
#define
USB_FEATURE_TEST_MODE
0x02U
#define
USB_DEVICE_CAPABITY_TYPE
0x10U
#define
USB_CONF_DESC_SIZE
0x09U
#define
USB_IF_DESC_SIZE
0x09U
#define
USB_EP_DESC_SIZE
0x07U
#define
USB_IAD_DESC_SIZE
0x08U
#define
USB_HS_MAX_PACKET_SIZE
512U
#define
USB_FS_MAX_PACKET_SIZE
64U
#define
USB_MAX_EP0_SIZE
64U
/* Device Status */
#define
USBD_STATE_DEFAULT
0x01U
#define
USBD_STATE_ADDRESSED
0x02U
#define
USBD_STATE_CONFIGURED
0x03U
#define
USBD_STATE_SUSPENDED
0x04U
/* EP0 State */
#define
USBD_EP0_IDLE
0x00U
#define
USBD_EP0_SETUP
0x01U
#define
USBD_EP0_DATA_IN
0x02U
#define
USBD_EP0_DATA_OUT
0x03U
#define
USBD_EP0_STATUS_IN
0x04U
#define
USBD_EP0_STATUS_OUT
0x05U
#define
USBD_EP0_STALL
0x06U
#define
USBD_EP_TYPE_CTRL
0x00U
#define
USBD_EP_TYPE_ISOC
0x01U
#define
USBD_EP_TYPE_BULK
0x02U
#define
USBD_EP_TYPE_INTR
0x03U
70 defines
#ifdef
USE_USBD_COMPOSITE
#define
USBD_EP_IN
0x80U
#define
USBD_EP_OUT
0x00U
#define
USBD_FUNC_DESCRIPTOR_TYPE
0x24U
#define
USBD_DESC_SUBTYPE_ACM
0x0FU
#define
USBD_DESC_ECM_BCD_LOW
0x00U
#define
USBD_DESC_ECM_BCD_HIGH
0x10U
/* ... */
#endif
/* USE_USBD_COMPOSITE */
/**
* @}
*/
/* ... */
/** @defgroup USBD_DEF_Exported_TypesDefinitions
* @{
*/
/* ... */
typedef
struct
usb_setup_req
{
uint8_t
bmRequest
;
uint8_t
bRequest
;
uint16_t
wValue
;
uint16_t
wIndex
;
uint16_t
wLength
;
...
}
USBD_SetupReqTypedef
;
typedef
struct
{
uint8_t
bLength
;
uint8_t
bDescriptorType
;
uint16_t
wTotalLength
;
uint8_t
bNumInterfaces
;
uint8_t
bConfigurationValue
;
uint8_t
iConfiguration
;
uint8_t
bmAttributes
;
uint8_t
bMaxPower
;
...
}
__PACKED
USBD_ConfigDescTypeDef
;
typedef
struct
{
uint8_t
bLength
;
uint8_t
bDescriptorType
;
uint16_t
wTotalLength
;
uint8_t
bNumDeviceCaps
;
...
}
USBD_BosDescTypeDef
;
typedef
struct
{
uint8_t
bLength
;
uint8_t
bDescriptorType
;
uint8_t
bEndpointAddress
;
uint8_t
bmAttributes
;
uint16_t
wMaxPacketSize
;
uint8_t
bInterval
;
...
}
__PACKED
USBD_EpDescTypeDef
;
typedef
struct
{
uint8_t
bLength
;
uint8_t
bDescriptorType
;
uint8_t
bDescriptorSubType
;
...
}
USBD_DescHeaderTypeDef
;
struct
_USBD_HandleTypeDef
;
typedef
struct
_Device_cb
{
uint8_t
(
*
Init
)
(
struct
_USBD_HandleTypeDef
*
pdev
,
uint8_t
cfgidx
)
;
uint8_t
(
*
DeInit
)
(
struct
_USBD_HandleTypeDef
*
pdev
,
uint8_t
cfgidx
)
;
/* Control Endpoints*/
uint8_t
(
*
Setup
)
(
struct
_USBD_HandleTypeDef
*
pdev
,
USBD_SetupReqTypedef
*
req
)
;
uint8_t
(
*
EP0_TxSent
)
(
struct
_USBD_HandleTypeDef
*
pdev
)
;
uint8_t
(
*
EP0_RxReady
)
(
struct
_USBD_HandleTypeDef
*
pdev
)
;
/* Class Specific Endpoints*/
uint8_t
(
*
DataIn
)
(
struct
_USBD_HandleTypeDef
*
pdev
,
uint8_t
epnum
)
;
uint8_t
(
*
DataOut
)
(
struct
_USBD_HandleTypeDef
*
pdev
,
uint8_t
epnum
)
;
uint8_t
(
*
SOF
)
(
struct
_USBD_HandleTypeDef
*
pdev
)
;
uint8_t
(
*
IsoINIncomplete
)
(
struct
_USBD_HandleTypeDef
*
pdev
,
uint8_t
epnum
)
;
uint8_t
(
*
IsoOUTIncomplete
)
(
struct
_USBD_HandleTypeDef
*
pdev
,
uint8_t
epnum
)
;
uint8_t
*
(
*
GetHSConfigDescriptor
)
(
uint16_t
*
length
)
;
uint8_t
*
(
*
GetFSConfigDescriptor
)
(
uint16_t
*
length
)
;
uint8_t
*
(
*
GetOtherSpeedConfigDescriptor
)
(
uint16_t
*
length
)
;
uint8_t
*
(
*
GetDeviceQualifierDescriptor
)
(
uint16_t
*
length
)
;
#if
(
USBD_SUPPORT_USER_STRING_DESC
==
1U
)
uint8_t
*
(
*
GetUsrStrDescriptor
)
(
struct
_USBD_HandleTypeDef
*
pdev
,
uint8_t
index
,
uint16_t
*
length
)
;
#endif
/* USBD_SUPPORT_USER_STRING_DESC */
...
}
USBD_ClassTypeDef
;
/* Following USB Device Speed */
typedef
enum
{
USBD_SPEED_HIGH
=
0U
,
USBD_SPEED_FULL
=
1U
,
USBD_SPEED_LOW
=
2U
,
...
}
USBD_SpeedTypeDef
;
/* Following USB Device status */
typedef
enum
{
USBD_OK
=
0U
,
USBD_BUSY
,
USBD_EMEM
,
USBD_FAIL
,
...
}
USBD_StatusTypeDef
;
/* USB Device descriptors structure */
typedef
struct
{
uint8_t
*
(
*
GetDeviceDescriptor
)
(
USBD_SpeedTypeDef
speed
,
uint16_t
*
length
)
;
uint8_t
*
(
*
GetLangIDStrDescriptor
)
(
USBD_SpeedTypeDef
speed
,
uint16_t
*
length
)
;
uint8_t
*
(
*
GetManufacturerStrDescriptor
)
(
USBD_SpeedTypeDef
speed
,
uint16_t
*
length
)
;
uint8_t
*
(
*
GetProductStrDescriptor
)
(
USBD_SpeedTypeDef
speed
,
uint16_t
*
length
)
;
uint8_t
*
(
*
GetSerialStrDescriptor
)
(
USBD_SpeedTypeDef
speed
,
uint16_t
*
length
)
;
uint8_t
*
(
*
GetConfigurationStrDescriptor
)
(
USBD_SpeedTypeDef
speed
,
uint16_t
*
length
)
;
uint8_t
*
(
*
GetInterfaceStrDescriptor
)
(
USBD_SpeedTypeDef
speed
,
uint16_t
*
length
)
;
#if
(
USBD_CLASS_USER_STRING_DESC
==
1
)
uint8_t
*
(
*
GetUserStrDescriptor
)
(
USBD_SpeedTypeDef
speed
,
uint8_t
idx
,
uint16_t
*
length
)
;
#endif
/* USBD_CLASS_USER_STRING_DESC */
#if
(
(
USBD_LPM_ENABLED
==
1U
)
||
(
USBD_CLASS_BOS_ENABLED
==
1
)
)
uint8_t
*
(
*
GetBOSDescriptor
)
(
USBD_SpeedTypeDef
speed
,
uint16_t
*
length
)
;
#endif
/* (USBD_LPM_ENABLED == 1U) || (USBD_CLASS_BOS_ENABLED == 1) */
...
}
USBD_DescriptorsTypeDef
;
/* USB Device handle structure */
typedef
struct
{
uint32_t
status
;
uint32_t
total_length
;
uint32_t
rem_length
;
uint32_t
maxpacket
;
uint16_t
is_used
;
uint16_t
bInterval
;
...
}
USBD_EndpointTypeDef
;
#ifdef
USE_USBD_COMPOSITE
typedef
enum
{
CLASS_TYPE_NONE
=
0
,
CLASS_TYPE_HID
=
1
,
CLASS_TYPE_CDC
=
2
,
CLASS_TYPE_MSC
=
3
,
CLASS_TYPE_DFU
=
4
,
CLASS_TYPE_CHID
=
5
,
CLASS_TYPE_AUDIO
=
6
,
CLASS_TYPE_ECM
=
7
,
CLASS_TYPE_RNDIS
=
8
,
CLASS_TYPE_MTP
=
9
,
CLASS_TYPE_VIDEO
=
10
,
CLASS_TYPE_PRINTER
=
11
,
CLASS_TYPE_CCID
=
12
,
...
}
USBD_CompositeClassTypeDef
;
/* USB Device handle structure */
typedef
struct
{
uint8_t
add
;
uint8_t
type
;
uint8_t
size
;
uint8_t
is_used
;
...
}
USBD_EPTypeDef
;
/* USB Device handle structure */
typedef
struct
{
USBD_CompositeClassTypeDef
ClassType
;
uint32_t
ClassId
;
uint32_t
Active
;
uint32_t
NumEps
;
USBD_EPTypeDef
Eps
[
USBD_MAX_CLASS_ENDPOINTS
]
;
uint8_t
*
EpAdd
;
uint32_t
NumIf
;
uint8_t
Ifs
[
USBD_MAX_CLASS_INTERFACES
]
;
uint32_t
CurrPcktSze
;
...
}
USBD_CompositeElementTypeDef
;
/* ... */
#endif
/* USE_USBD_COMPOSITE */
/* USB Device handle structure */
typedef
struct
_USBD_HandleTypeDef
{
uint8_t
id
;
uint32_t
dev_config
;
uint32_t
dev_default_config
;
uint32_t
dev_config_status
;
USBD_SpeedTypeDef
dev_speed
;
USBD_EndpointTypeDef
ep_in
[
16
]
;
USBD_EndpointTypeDef
ep_out
[
16
]
;
__IO
uint32_t
ep0_state
;
uint32_t
ep0_data_len
;
__IO
uint8_t
dev_state
;
__IO
uint8_t
dev_old_state
;
uint8_t
dev_address
;
uint8_t
dev_connection_status
;
uint8_t
dev_test_mode
;
uint32_t
dev_remote_wakeup
;
uint8_t
ConfIdx
;
USBD_SetupReqTypedef
request
;
USBD_DescriptorsTypeDef
*
pDesc
;
USBD_ClassTypeDef
*
pClass
[
USBD_MAX_SUPPORTED_CLASS
]
;
void
*
pClassData
;
void
*
pClassDataCmsit
[
USBD_MAX_SUPPORTED_CLASS
]
;
void
*
pUserData
[
USBD_MAX_SUPPORTED_CLASS
]
;
void
*
pData
;
void
*
pBosDesc
;
void
*
pConfDesc
;
uint32_t
classId
;
uint32_t
NumClasses
;
#ifdef
USE_USBD_COMPOSITE
USBD_CompositeElementTypeDef
tclasslist
[
USBD_MAX_SUPPORTED_CLASS
]
;
#endif
/* USE_USBD_COMPOSITE */
#if
(
USBD_USER_REGISTER_CALLBACK
==
1U
)
void
(
*
DevStateCallback
)
(
uint8_t
dev_state
,
uint8_t
cfgidx
)
;
/*!< User Notification callback */
#endif
/* USBD_USER_REGISTER_CALLBACK */
...
}
USBD_HandleTypeDef
;
#if
(
USBD_USER_REGISTER_CALLBACK
==
1U
)
typedef
void
(
*
USBD_DevStateCallbackTypeDef
)
(
uint8_t
dev_state
,
uint8_t
cfgidx
)
;
/*!< pointer to User callback function */
#endif
/* USBD_USER_REGISTER_CALLBACK */
/* USB Device endpoint direction */
typedef
enum
{
OUT
=
0x00
,
IN
=
0x80
,
...
}
USBD_EPDirectionTypeDef
;
typedef
enum
{
NETWORK_CONNECTION
=
0x00
,
RESPONSE_AVAILABLE
=
0x01
,
CONNECTION_SPEED_CHANGE
=
0x2A
...
}
USBD_CDC_NotifCodeTypeDef
;
/**
* @}
*/
/* ... */
/** @defgroup USBD_DEF_Exported_Macros
* @{
*/
/* ... */
__STATIC_INLINE
uint16_t
SWAPBYTE
(
uint8_t
*
addr
)
{
uint16_t
_SwapVal
;
uint16_t
_Byte1
;
uint16_t
_Byte2
;
uint8_t
*
_pbuff
=
addr
;
_Byte1
=
*
(
uint8_t
*
)
_pbuff
;
_pbuff
++
;
_Byte2
=
*
(
uint8_t
*
)
_pbuff
;
_SwapVal
=
(
_Byte2
<
<
8
)
|
_Byte1
;
return
_SwapVal
;
}
{ ... }
#ifndef
LOBYTE
#define
LOBYTE
(
x
)
(
(
uint8_t
)
(
(
x
)
&
0x00FFU
)
)
#endif
/* LOBYTE */
#ifndef
HIBYTE
#define
HIBYTE
(
x
)
(
(
uint8_t
)
(
(
(
x
)
&
0xFF00U
)
>
>
8U
)
)
#endif
/* HIBYTE */
#ifndef
MIN
#define
MIN
(
a
,
b
)
(
(
(
a
)
<
(
b
)
)
?
(
a
)
:
(
b
)
)
#endif
/* MIN */
#ifndef
MAX
#define
MAX
(
a
,
b
)
(
(
(
a
)
>
(
b
)
)
?
(
a
)
:
(
b
)
)
#endif
/* MAX */
#if
defined
(
__GNUC__
)
#ifndef
__weak
#define
__weak
__attribute__
(
(
weak
)
)
#endif
/* __weak */
#ifndef
__packed
#define
__packed
__attribute__
(
(
__packed__
)
)
#endif
/* __packed */
/* ... */
#endif
/* __GNUC__ */
/* In HS mode and when the DMA is used, all variables and data structures dealing
with the DMA during the transaction process should be 4-bytes aligned */
/* ... */
#if
defined
(
__GNUC__
)
&&
!
defined
(
__CC_ARM
)
/* GNU Compiler */
#ifndef
__ALIGN_END
#define
__ALIGN_END
__attribute__
(
(
aligned
(
4U
)
)
)
#endif
/* __ALIGN_END */
#ifndef
__ALIGN_BEGIN
#define
__ALIGN_BEGIN
#endif
/* __ALIGN_BEGIN */
/* ... */
#else
#ifndef
__ALIGN_END
#define
__ALIGN_END
#endif
/* __ALIGN_END */
#ifndef
__ALIGN_BEGIN
#if
defined
(
__CC_ARM
)
/* ARM Compiler */
#define
__ALIGN_BEGIN
__align
(
4U
)
#elif
defined
(
__ICCARM__
)
/* IAR Compiler */
#define
__ALIGN_BEGIN
#endif
/* __CC_ARM */
/* ... */
#endif
/* __ALIGN_BEGIN */
/* ... */
#endif
/* __GNUC__ */
/**
* @}
*/
/* ... */
/** @defgroup USBD_DEF_Exported_Variables
* @{
*/
/* ... */
/**
* @}
*/
/* ... */
/** @defgroup USBD_DEF_Exported_FunctionsPrototype
* @{
*/
/* ... */
/**
* @}
*/
/* ... */
#ifdef
__cplusplus
}
extern "C" { ... }
#endif
/* ... */
#endif
/* __USBD_DEF_H */
/**
* @}
*/
/* ... */
/**
* @}
*/
/* ... */
Details
Show:
from
Types:
Columns:
All items filtered out
All items filtered out
This file uses the notable symbols shown below. Click anywhere in the file to view more details.
SWAPBYTE()
__IO
NULL
_USBD_HandleTypeDef
USBD_SpeedTypeDef
__STATIC_INLINE
USBD_StatusTypeDef
_USBD_HandleTypeDef::pData
USBD_StatusTypeDef::USBD_OK
__weak
__ALIGN_END
__ALIGN_BEGIN
USBD_DescriptorsTypeDef
LOBYTE
USBD_SpeedTypeDef::USBD_SPEED_HIGH
HIBYTE
_USBD_HandleTypeDef::classId
USBD_SpeedTypeDef::USBD_SPEED_FULL
USB_LEN_LANGID_STR_DESC
USB_DESC_TYPE_STRING
_USBD_HandleTypeDef::pClassDataCmsit
usb_setup_req
USBD_StatusTypeDef::USBD_FAIL
_USBD_HandleTypeDef::dev_state
USBD_IDX_MFC_STR
USBD_IDX_PRODUCT_STR
USBD_IDX_SERIAL_STR
USB_MAX_EP0_SIZE
__PACKED
USB_DESC_TYPE_DEVICE
USBD_DescriptorsTypeDef::GetLangIDStrDescriptor
USBD_DescriptorsTypeDef::GetManufacturerStrDescriptor
USBD_DescriptorsTypeDef::GetProductStrDescriptor
USBD_DescriptorsTypeDef::GetSerialStrDescriptor
USBD_DescriptorsTypeDef::GetConfigurationStrDescriptor
USBD_DescriptorsTypeDef::GetInterfaceStrDescriptor
USBD_DescriptorsTypeDef::GetDeviceDescriptor
USB_LEN_DEV_DESC
USBD_STATE_CONFIGURED
USBD_EpDescTypeDef
_USBD_HandleTypeDef::pUserData
_USBD_HandleTypeDef::pClass
MIN
USBD_MAX_SUPPORTED_CLASS
USBD_EP_TYPE_BULK
usb_setup_req::wValue
_USBD_HandleTypeDef::dev_remote_wakeup
_USBD_HandleTypeDef::ep_in
_Device_cb
USBD_EndpointTypeDef::is_used
usb_setup_req::wLength
USBD_EndpointTypeDef
USBD_EP_TYPE_INTR
USBD_LPM_ENABLED
USB_REQ_TYPE_CLASS
_USBD_HandleTypeDef::ep_out
USB_DESC_TYPE_CONFIGURATION
USB_DESC_TYPE_INTERFACE
USB_DESC_TYPE_ENDPOINT
USBD_EndpointTypeDef::bInterval
USB_REQ_TYPE_STANDARD
_USBD_HandleTypeDef::dev_speed
USBD_EPDirectionTypeDef
USB_REQ_RECIPIENT_INTERFACE
USBD_DescHeaderTypeDef
USBD_MAX_CLASS_INTERFACES
USBD_STATE_SUSPENDED
USBD_EpDescTypeDef::wMaxPacketSize
usb_setup_req::bmRequest
usb_setup_req::bRequest
_Device_cb::DeInit
_Device_cb::Setup
_USBD_HandleTypeDef::pDesc
USBD_SUPPORT_USER_STRING_DESC
USBD_EndpointTypeDef::rem_length
USBD_EndpointTypeDef::maxpacket
USBD_EndpointTypeDef::total_length
USBD_MAX_CLASS_ENDPOINTS
USB_LEN_DEV_QUALIFIER_DESC
USBD_STATE_ADDRESSED
USBD_EpDescTypeDef::bInterval
USBD_EndpointTypeDef::status
_USBD_HandleTypeDef::dev_config
usb_setup_req::wIndex
USBD_ConfigDescTypeDef
_Device_cb::GetHSConfigDescriptor
_Device_cb::GetFSConfigDescriptor
_USBD_HandleTypeDef::pClassData
USB_REQ_CLEAR_FEATURE
_USBD_HandleTypeDef::request
USB_REQ_TYPE_MASK
USB_REQ_RECIPIENT_DEVICE
USB_REQ_GET_STATUS
USB_DESC_TYPE_IAD
USBD_STATE_DEFAULT
_USBD_HandleTypeDef::id
_USBD_HandleTypeDef::pConfDesc
MAX
USB_REQ_SET_INTERFACE
USB_DESC_TYPE_DEVICE_QUALIFIER
USBD_EP_TYPE_CTRL
USBD_EP_TYPE_ISOC
_Device_cb::Init
_Device_cb::DataIn
_Device_cb::GetOtherSpeedConfigDescriptor
_Device_cb::GetDeviceQualifierDescriptor
USBD_StatusTypeDef::USBD_EMEM
_USBD_HandleTypeDef::ep0_state
USB_REQ_GET_DESCRIPTOR
USB_REQ_GET_INTERFACE
_Device_cb::EP0_RxReady
_Device_cb::DataOut
USBD_MAX_POWER
USBD_ConfigDescTypeDef::bLength
USBD_ConfigDescTypeDef::wTotalLength
USBD_EPDirectionTypeDef::OUT
USBD_EPDirectionTypeDef::IN
USB_REQ_RECIPIENT_ENDPOINT
_Device_cb::EP0_TxSent
_Device_cb::SOF
__packed
USB_LEN_CFG_DESC
USB_REQ_TYPE_VENDOR
USB_REQ_SET_FEATURE
USB_DESC_TYPE_BOS
_Device_cb::IsoINIncomplete
_Device_cb::IsoOUTIncomplete
_USBD_HandleTypeDef::dev_test_mode
USBD_CLASS_USER_STRING_DESC
USBD_IDX_INTERFACE_STR
USB_REQ_SET_ADDRESS
USB_REQ_SET_CONFIGURATION
USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION
USB_FEATURE_EP_HALT
USB_DEVICE_CAPABITY_TYPE
USBD_DescHeaderTypeDef::bDescriptorType
_USBD_HandleTypeDef::dev_config_status
_USBD_HandleTypeDef::ep0_data_len
USB_REQ_GET_CONFIGURATION
USB_FEATURE_REMOTE_WAKEUP
USBD_EP0_DATA_IN
USBD_EP0_DATA_OUT
USBD_BosDescTypeDef
USBD_DescHeaderTypeDef::bLength
USBD_StatusTypeDef::USBD_BUSY
_USBD_HandleTypeDef::dev_default_config
_USBD_HandleTypeDef::dev_old_state
_USBD_HandleTypeDef::NumClasses
USBD_CDC_NotifCodeTypeDef
USB_LEN_IF_DESC
USB_LEN_EP_DESC
USB_LEN_OTG_DESC
USBD_IDX_LANGID_STR
USBD_IDX_CONFIG_STR
USB_REQ_SET_DESCRIPTOR
USB_REQ_SYNCH_FRAME
USB_CONFIG_REMOTE_WAKEUP
USB_CONFIG_SELF_POWERED
USB_FEATURE_TEST_MODE
USBD_EP0_IDLE
USBD_EP0_SETUP
USBD_EP0_STATUS_IN
USBD_EP0_STATUS_OUT
USBD_EpDescTypeDef::bEndpointAddress
USBD_DescHeaderTypeDef::bDescriptorSubType
_USBD_HandleTypeDef::dev_address
SWAPBYTE()::addr
__USBD_DEF_H
USB_LEN_OTHER_SPEED_DESC_SIZ
USB_REQ_RECIPIENT_MASK
USB_CONF_DESC_SIZE
USB_IF_DESC_SIZE
USB_EP_DESC_SIZE
USB_IAD_DESC_SIZE
USB_HS_MAX_PACKET_SIZE
USB_FS_MAX_PACKET_SIZE
USBD_EP0_STALL
USBD_ConfigDescTypeDef::bDescriptorType
USBD_ConfigDescTypeDef::bNumInterfaces
USBD_ConfigDescTypeDef::bConfigurationValue
USBD_ConfigDescTypeDef::iConfiguration
USBD_ConfigDescTypeDef::bmAttributes
USBD_ConfigDescTypeDef::bMaxPower
USBD_BosDescTypeDef::bLength
USBD_BosDescTypeDef::bDescriptorType
USBD_BosDescTypeDef::wTotalLength
USBD_BosDescTypeDef::bNumDeviceCaps
USBD_EpDescTypeDef::bLength
USBD_EpDescTypeDef::bDescriptorType
USBD_EpDescTypeDef::bmAttributes
USBD_SpeedTypeDef::USBD_SPEED_LOW
_USBD_HandleTypeDef::dev_connection_status
_USBD_HandleTypeDef::ConfIdx
_USBD_HandleTypeDef::pBosDesc
USBD_CDC_NotifCodeTypeDef::NETWORK_CONNECTION
USBD_CDC_NotifCodeTypeDef::RESPONSE_AVAILABLE
USBD_CDC_NotifCodeTypeDef::CONNECTION_SPEED_CHANGE
USBD_SetupReqTypedef
USBD_ConfigDescTypeDef
USBD_BosDescTypeDef