100 static uint8_t USBD_GetLen(uint8_t *buf);
127 USBD_GetDescriptor (pdev, req) ;
131 USBD_SetAddress(pdev, req);
135 USBD_SetConfig (pdev , req);
139 USBD_GetConfig (pdev , req);
143 USBD_GetStatus (pdev , req);
148 USBD_SetFeature (pdev , req);
152 USBD_ClrFeature (pdev , req);
231 if ((ep_addr != 0x00) && (ep_addr != 0x80))
240 if ((ep_addr != 0x00) && (ep_addr != 0x80))
262 if ((ep_addr != 0x00) && (ep_addr != 0x80))
271 if ((ep_addr & 0x7F) != 0x00)
290 if ((ep_addr & 0x7F) != 0x00)
297 pep = ((ep_addr & 0x80) == 0x80) ? &pdev->
ep_in[ep_addr & 0x7F]:\
298 &pdev->
ep_out[ep_addr & 0x7F];
340 #if (USBD_LPM_ENABLED == 1) 363 switch ((uint8_t)(req->
wValue))
390 #if (USBD_SUPPORT_USER_STRING == 1) 391 pbuf = pdev->
pClass->GetUsrStrDescriptor(pdev, (req->
wValue) , &len);
430 if((len != 0)&& (req->
wLength != 0))
456 dev_addr = (uint8_t)(req->
wValue) & 0x7F;
495 static uint8_t cfgidx;
497 cfgidx = (uint8_t)(req->
wValue);
618 #if ( USBD_SELF_POWERED == 1) 701 req->
bRequest = *(uint8_t *) (pdata + 1);
738 *len = USBD_GetLen(desc) * 2 + 2;
739 unicode[idx++] = *len;
742 while (*desc !=
'\0')
744 unicode[idx++] = *desc++;
745 unicode[idx++] = 0x00;
756 static uint8_t USBD_GetLen(uint8_t *buf)
#define USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION
USBD_StatusTypeDef USBD_CtlSendStatus(USBD_HandleTypeDef *pdev)
USBD_CtlSendStatus send zero lzngth packet on the ctl pipe.
USBD_EndpointTypeDef ep_in[15]
uint32_t dev_default_config
#define USBD_IDX_LANGID_STR
#define USB_REQ_GET_CONFIGURATION
uint8_t *(* GetLangIDStrDescriptor)(USBD_SpeedTypeDef speed, uint16_t *length)
uint8_t *(* GetHSConfigDescriptor)(uint16_t *length)
uint8_t *(* GetInterfaceStrDescriptor)(USBD_SpeedTypeDef speed, uint16_t *length)
USBD_StatusTypeDef USBD_StdEPReq(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req)
USBD_StdEPReq Handle standard usb endpoint requests.
#define USB_REQ_GET_DESCRIPTOR
USBD_DescriptorsTypeDef * pDesc
USBD_StatusTypeDef USBD_LL_ClearStallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
Clears a Stall condition on an endpoint of the Low Level Driver.
#define USBD_MAX_NUM_CONFIGURATION
#define USBD_IDX_CONFIG_STR
uint8_t USBD_LL_IsStallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
Returns Stall condition.
USBD_SpeedTypeDef dev_speed
#define USBD_STATE_ADDRESSED
void USBD_GetString(uint8_t *desc, uint8_t *unicode, uint16_t *len)
USBD_GetString Convert Ascii string into unicode one.
#define USB_REQ_SET_CONFIGURATION
#define USBD_STATE_DEFAULT
uint8_t(* Setup)(struct _USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req)
#define USBD_IDX_INTERFACE_STR
USBD_StatusTypeDef USBD_SetClassConfig(USBD_HandleTypeDef *pdev, uint8_t cfgidx)
USBD_SetClassConfig Configure device and start the interface.
USBD_StatusTypeDef USBD_ClrClassConfig(USBD_HandleTypeDef *pdev, uint8_t cfgidx)
USBD_ClrClassConfig Clear current configuration.
uint8_t *(* GetManufacturerStrDescriptor)(USBD_SpeedTypeDef speed, uint16_t *length)
#define USBD_IDX_PRODUCT_STR
#define USB_FEATURE_EP_HALT
USBD_StatusTypeDef USBD_StdDevReq(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req)
USBD_StdDevReq Handle standard usb device requests.
USBD_StatusTypeDef USBD_LL_StallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
Sets a Stall condition on an endpoint of the Low Level Driver.
USBD_StatusTypeDef USBD_StdItfReq(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req)
USBD_StdItfReq Handle standard usb interface requests.
#define USB_REQ_SET_FEATURE
uint8_t *(* GetProductStrDescriptor)(USBD_SpeedTypeDef speed, uint16_t *length)
#define USB_DESC_TYPE_CONFIGURATION
#define USB_DESC_TYPE_DEVICE
#define USB_CONFIG_REMOTE_WAKEUP
Header file for the usbd_ioreq.c file.
uint8_t *(* GetConfigurationStrDescriptor)(USBD_SpeedTypeDef speed, uint16_t *length)
USBD_StatusTypeDef USBD_LL_SetUSBAddress(USBD_HandleTypeDef *pdev, uint8_t dev_addr)
Assigns a USB address to the device.
#define USBD_MAX_NUM_INTERFACES
USBD_StatusTypeDef USBD_CtlSendData(USBD_HandleTypeDef *pdev, uint8_t *buf, uint16_t len)
USBD_CtlSendData send data on the ctl pipe.
uint8_t *(* GetOtherSpeedConfigDescriptor)(uint16_t *length)
#define USB_DESC_TYPE_STRING
void USBD_CtlError(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req)
USBD_CtlError Handle USB low level Error.
#define USB_DESC_TYPE_DEVICE_QUALIFIER
uint8_t *(* GetDeviceQualifierDescriptor)(uint16_t *length)
#define USB_CONFIG_SELF_POWERED
#define USBD_IDX_SERIAL_STR
USBD_ClassTypeDef * pClass
#define USB_REQ_GET_STATUS
#define USB_REQ_CLEAR_FEATURE
uint32_t dev_remote_wakeup
uint32_t dev_config_status
#define USB_REQ_SET_ADDRESS
#define USBD_STATE_CONFIGURED
#define USB_DESC_TYPE_BOS
USBD_EndpointTypeDef ep_out[15]
uint8_t *(* GetSerialStrDescriptor)(USBD_SpeedTypeDef speed, uint16_t *length)
uint8_t *(* GetFSConfigDescriptor)(uint16_t *length)
void USBD_ParseSetupRequest(USBD_SetupReqTypedef *req, uint8_t *pdata)
USBD_ParseSetupRequest Copy buffer into setup structure.
uint8_t *(* GetDeviceDescriptor)(USBD_SpeedTypeDef speed, uint16_t *length)
#define USB_FEATURE_REMOTE_WAKEUP