diff options
Diffstat (limited to 'Middlewares/ST/STM32_USB_Device_Library/Class/BillBoard/Src/usbd_billboard.c')
-rw-r--r-- | Middlewares/ST/STM32_USB_Device_Library/Class/BillBoard/Src/usbd_billboard.c | 106 |
1 files changed, 57 insertions, 49 deletions
diff --git a/Middlewares/ST/STM32_USB_Device_Library/Class/BillBoard/Src/usbd_billboard.c b/Middlewares/ST/STM32_USB_Device_Library/Class/BillBoard/Src/usbd_billboard.c index b9e6d1906..b14a469c5 100644 --- a/Middlewares/ST/STM32_USB_Device_Library/Class/BillBoard/Src/usbd_billboard.c +++ b/Middlewares/ST/STM32_USB_Device_Library/Class/BillBoard/Src/usbd_billboard.c @@ -7,7 +7,7 @@ * - Initialization and Configuration of high and low layer * - Enumeration as BillBoard Device * - Error management - * @verbatim + * @verbatim * * =================================================================== * BillBoard Class Description @@ -150,8 +150,12 @@ __ALIGN_BEGIN static uint8_t USBD_BB_CfgDesc[USB_BB_CONFIG_DESC_SIZ] __ALIGN_EN 0x01, /* bNumInterfaces: 1 interface */ 0x01, /* bConfigurationValue: Configuration value */ USBD_IDX_CONFIG_STR, /* iConfiguration: Index of string descriptor describing the configuration */ - 0xC0, /* bmAttributes: bus powered and Support Remote Wake-up */ - 0x00, /* MaxPower 100 mA: this current is used for detecting Vbus */ +#if (USBD_SELF_POWERED == 1U) + 0xC0, /* bmAttributes: Bus Powered according to user configuration */ +#else + 0x80, /* bmAttributes: Bus Powered according to user configuration */ +#endif + USBD_MAX_POWER, /* MaxPower 100 mA: this current is used for detecting Vbus */ /* 09 */ /************** Descriptor of BillBoard interface ****************/ @@ -170,15 +174,19 @@ __ALIGN_BEGIN static uint8_t USBD_BB_CfgDesc[USB_BB_CONFIG_DESC_SIZ] __ALIGN_EN /* USB device Other Speed Configuration Descriptor */ __ALIGN_BEGIN static uint8_t USBD_BB_OtherSpeedCfgDesc[USB_BB_CONFIG_DESC_SIZ] __ALIGN_END = { - 0x09, /* bLength: Configuation Descriptor size */ + 0x09, /* bLength: Configuration Descriptor size */ USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION, USB_BB_CONFIG_DESC_SIZ, 0x00, 0x01, /* bNumInterfaces: 1 interface */ 0x01, /* bConfigurationValue: */ USBD_IDX_CONFIG_STR, /* iConfiguration: */ - 0xC0, /* bmAttributes: */ - 0x00, /* MaxPower 100 mA */ +#if (USBD_SELF_POWERED == 1U) + 0xC0, /* bmAttributes: Bus Powered according to user configuration */ +#else + 0x80, /* bmAttributes: Bus Powered according to user configuration */ +#endif + USBD_MAX_POWER, /* MaxPower 100 mA */ /************** Descriptor of BillBoard interface ****************/ /* 09 */ @@ -248,50 +256,50 @@ static uint8_t USBD_BB_Setup(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req switch (req->bmRequest & USB_REQ_TYPE_MASK) { - case USB_REQ_TYPE_CLASS: - break; - case USB_REQ_TYPE_STANDARD: - switch (req->bRequest) - { - case USB_REQ_GET_STATUS: - if (pdev->dev_state == USBD_STATE_CONFIGURED) - { - (void)USBD_CtlSendData(pdev, (uint8_t *)&status_info, 2U); - } - else - { - USBD_CtlError(pdev, req); - ret = USBD_FAIL; - } + case USB_REQ_TYPE_CLASS: break; - - case USB_REQ_GET_INTERFACE: - if (pdev->dev_state == USBD_STATE_CONFIGURED) - { - (void)USBD_CtlSendData(pdev, (uint8_t *)&AltSetting, 1U); - } - else + case USB_REQ_TYPE_STANDARD: + switch (req->bRequest) { - USBD_CtlError(pdev, req); - ret = USBD_FAIL; - } - break; + case USB_REQ_GET_STATUS: + if (pdev->dev_state == USBD_STATE_CONFIGURED) + { + (void)USBD_CtlSendData(pdev, (uint8_t *)&status_info, 2U); + } + else + { + USBD_CtlError(pdev, req); + ret = USBD_FAIL; + } + break; - case USB_REQ_SET_INTERFACE: - case USB_REQ_CLEAR_FEATURE: + case USB_REQ_GET_INTERFACE: + if (pdev->dev_state == USBD_STATE_CONFIGURED) + { + (void)USBD_CtlSendData(pdev, (uint8_t *)&AltSetting, 1U); + } + else + { + USBD_CtlError(pdev, req); + ret = USBD_FAIL; + } + break; + + case USB_REQ_SET_INTERFACE: + case USB_REQ_CLEAR_FEATURE: + break; + + default: + USBD_CtlError(pdev, req); + ret = USBD_FAIL; + break; + } break; default: USBD_CtlError(pdev, req); ret = USBD_FAIL; break; - } - break; - - default: - USBD_CtlError(pdev, req); - ret = USBD_FAIL; - break; } return (uint8_t)ret; @@ -391,10 +399,10 @@ static uint8_t *USBD_BB_GetDeviceQualifierDesc(uint16_t *length) */ USBD_BB_DescHeader_t *USBD_BB_GetNextDesc(uint8_t *pbuf, uint16_t *ptr) { - USBD_BB_DescHeader_t *pnext = (USBD_BB_DescHeader_t *)pbuf; + USBD_BB_DescHeader_t *pnext = (USBD_BB_DescHeader_t *)(void *)pbuf; *ptr += pnext->bLength; - pnext = (USBD_BB_DescHeader_t *)(pbuf + pnext->bLength); + pnext = (USBD_BB_DescHeader_t *)(void *)(pbuf + pnext->bLength); return (pnext); } @@ -411,8 +419,8 @@ void *USBD_BB_GetCapDesc(USBD_HandleTypeDef *pdev, uint8_t *pBosDesc) { UNUSED(pdev); - USBD_BB_DescHeader_t *pdesc = (USBD_BB_DescHeader_t *)pBosDesc; - USBD_BosDescTypedef *desc = (USBD_BosDescTypedef *)pBosDesc; + USBD_BB_DescHeader_t *pdesc = (USBD_BB_DescHeader_t *)(void *)pBosDesc; + USBD_BosDescTypedef *desc = (USBD_BosDescTypedef *)(void *)pBosDesc; USBD_BosBBCapDescTypedef *pCapDesc = NULL; uint16_t ptr; @@ -426,7 +434,7 @@ void *USBD_BB_GetCapDesc(USBD_HandleTypeDef *pdev, uint8_t *pBosDesc) if (pdesc->bDevCapabilityType == USBD_BILLBOARD_CAPABILITY) { - pCapDesc = (USBD_BosBBCapDescTypedef *)pdesc; + pCapDesc = (USBD_BosBBCapDescTypedef *)(void *)pdesc; break; } } @@ -447,8 +455,8 @@ void *USBD_BB_GetAltModeDesc(USBD_HandleTypeDef *pdev, uint8_t *pBosDesc, uint8_ { UNUSED(pdev); - USBD_BB_DescHeader_t *pdesc = (USBD_BB_DescHeader_t *)pBosDesc; - USBD_BosDescTypedef *desc = (USBD_BosDescTypedef *)pBosDesc; + USBD_BB_DescHeader_t *pdesc = (USBD_BB_DescHeader_t *)(void *)pBosDesc; + USBD_BosDescTypedef *desc = (USBD_BosDescTypedef *)(void *)pBosDesc; USBD_BB_AltModeCapDescTypeDef *pAltModDesc = NULL; uint8_t cnt = 0U; uint16_t ptr; @@ -465,7 +473,7 @@ void *USBD_BB_GetAltModeDesc(USBD_HandleTypeDef *pdev, uint8_t *pBosDesc, uint8_ { if (cnt == idx) { - pAltModDesc = (USBD_BB_AltModeCapDescTypeDef *)pdesc; + pAltModDesc = (USBD_BB_AltModeCapDescTypeDef *)(void *)pdesc; break; } else |