master
Ondřej Hruška 8 years ago
parent 73065ffca0
commit f1abfedd1c
  1. 622
      Middlewares/ST/STM32_USB_Device_Library/Class/HID/Src/usbd_hid.c
  2. 167
      Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h.orig
  3. 4
      Src/usbd_desc.c

@ -44,7 +44,7 @@
* limitations under the License. * limitations under the License.
* *
****************************************************************************** ******************************************************************************
*/ */
/* Includes ------------------------------------------------------------------*/ /* Includes ------------------------------------------------------------------*/
#include "usbd_hid.h" #include "usbd_hid.h"
@ -60,31 +60,31 @@
/** @defgroup USBD_HID /** @defgroup USBD_HID
* @brief usbd core module * @brief usbd core module
* @{ * @{
*/ */
/** @defgroup USBD_HID_Private_TypesDefinitions /** @defgroup USBD_HID_Private_TypesDefinitions
* @{ * @{
*/ */
/** /**
* @} * @}
*/ */
/** @defgroup USBD_HID_Private_Defines /** @defgroup USBD_HID_Private_Defines
* @{ * @{
*/ */
/** /**
* @} * @}
*/ */
/** @defgroup USBD_HID_Private_Macros /** @defgroup USBD_HID_Private_Macros
* @{ * @{
*/ */
/** /**
* @} * @}
*/ */
@ -94,183 +94,183 @@
*/ */
static uint8_t USBD_HID_Init (USBD_HandleTypeDef *pdev, static uint8_t USBD_HID_Init(USBD_HandleTypeDef *pdev,
uint8_t cfgidx); uint8_t cfgidx);
static uint8_t USBD_HID_DeInit (USBD_HandleTypeDef *pdev, static uint8_t USBD_HID_DeInit(USBD_HandleTypeDef *pdev,
uint8_t cfgidx); uint8_t cfgidx);
static uint8_t USBD_HID_Setup (USBD_HandleTypeDef *pdev, static uint8_t USBD_HID_Setup(USBD_HandleTypeDef *pdev,
USBD_SetupReqTypedef *req); USBD_SetupReqTypedef *req);
static uint8_t *USBD_HID_GetCfgDesc (uint16_t *length); static uint8_t *USBD_HID_GetCfgDesc(uint16_t *length);
static uint8_t *USBD_HID_GetDeviceQualifierDesc (uint16_t *length); static uint8_t *USBD_HID_GetDeviceQualifierDesc(uint16_t *length);
static uint8_t USBD_HID_DataIn (USBD_HandleTypeDef *pdev, uint8_t epnum); static uint8_t USBD_HID_DataIn(USBD_HandleTypeDef *pdev, uint8_t epnum);
/** /**
* @} * @}
*/ */
/** @defgroup USBD_HID_Private_Variables /** @defgroup USBD_HID_Private_Variables
* @{ * @{
*/ */
USBD_ClassTypeDef USBD_HID = USBD_ClassTypeDef USBD_HID =
{ {
USBD_HID_Init, USBD_HID_Init,
USBD_HID_DeInit, USBD_HID_DeInit,
USBD_HID_Setup, USBD_HID_Setup,
NULL, /*EP0_TxSent*/ NULL, /*EP0_TxSent*/
NULL, /*EP0_RxReady*/ NULL, /*EP0_RxReady*/
USBD_HID_DataIn, /*DataIn*/ USBD_HID_DataIn, /*DataIn*/
NULL, /*DataOut*/ NULL, /*DataOut*/
NULL, /*SOF */ NULL, /*SOF */
NULL, NULL,
NULL, NULL,
USBD_HID_GetCfgDesc, USBD_HID_GetCfgDesc,
USBD_HID_GetCfgDesc, USBD_HID_GetCfgDesc,
USBD_HID_GetCfgDesc, USBD_HID_GetCfgDesc,
USBD_HID_GetDeviceQualifierDesc, USBD_HID_GetDeviceQualifierDesc,
}; };
/* USB HID device Configuration Descriptor */ /* USB HID device Configuration Descriptor */
__ALIGN_BEGIN static uint8_t USBD_HID_CfgDesc[USB_HID_CONFIG_DESC_SIZ] __ALIGN_END = __ALIGN_BEGIN static uint8_t USBD_HID_CfgDesc[USB_HID_CONFIG_DESC_SIZ] __ALIGN_END =
{ {
0x09, /* bLength: Configuration Descriptor size */ 0x09, /* bLength: Configuration Descriptor size */
USB_DESC_TYPE_CONFIGURATION, /* bDescriptorType: Configuration */ USB_DESC_TYPE_CONFIGURATION, /* bDescriptorType: Configuration */
USB_HID_CONFIG_DESC_SIZ, USB_HID_CONFIG_DESC_SIZ,
/* wTotalLength: Bytes returned */ /* wTotalLength: Bytes returned */
0x00, 0x00,
0x01, /*bNumInterfaces: 1 interface*/ 0x01, /*bNumInterfaces: 1 interface*/
0x01, /*bConfigurationValue: Configuration value*/ 0x01, /*bConfigurationValue: Configuration value*/
0x00, /*iConfiguration: Index of string descriptor describing 0x00, /*iConfiguration: Index of string descriptor describing
the configuration*/ the configuration*/
0xE0, /*bmAttributes: bus powered and Support Remote Wake-up */ 0xE0, /*bmAttributes: bus powered and Support Remote Wake-up */
0x32, /*MaxPower 100 mA: this current is used for detecting Vbus*/ 0x32, /*MaxPower 100 mA: this current is used for detecting Vbus*/
/************** Descriptor of Joystick Mouse interface ****************/ /************** Descriptor of Joystick Mouse interface ****************/
/* 09 */ /* 09 */
0x09, /*bLength: Interface Descriptor size*/ 0x09, /*bLength: Interface Descriptor size*/
USB_DESC_TYPE_INTERFACE,/*bDescriptorType: Interface descriptor type*/ USB_DESC_TYPE_INTERFACE,/*bDescriptorType: Interface descriptor type*/
0x00, /*bInterfaceNumber: Number of Interface*/ 0x00, /*bInterfaceNumber: Number of Interface*/
0x00, /*bAlternateSetting: Alternate setting*/ 0x00, /*bAlternateSetting: Alternate setting*/
0x01, /*bNumEndpoints*/ 0x01, /*bNumEndpoints*/
0x03, /*bInterfaceClass: HID*/ 0x03, /*bInterfaceClass: HID*/
0x01, /*bInterfaceSubClass : 1=BOOT, 0=no boot*/ 0x01, /*bInterfaceSubClass : 1=BOOT, 0=no boot*/
0x02, /*nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse*/ 0x02, /*nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse*/
0, /*iInterface: Index of string descriptor*/ 0, /*iInterface: Index of string descriptor*/
/******************** Descriptor of Joystick Mouse HID ********************/ /******************** Descriptor of Joystick Mouse HID ********************/
/* 18 */ /* 18 */
0x09, /*bLength: HID Descriptor size*/ 0x09, /*bLength: HID Descriptor size*/
HID_DESCRIPTOR_TYPE, /*bDescriptorType: HID*/ HID_DESCRIPTOR_TYPE, /*bDescriptorType: HID*/
0x11, /*bcdHID: HID Class Spec release number*/ 0x11, /*bcdHID: HID Class Spec release number*/
0x01, 0x01,
0x00, /*bCountryCode: Hardware target country*/ 0x00, /*bCountryCode: Hardware target country*/
0x01, /*bNumDescriptors: Number of HID class descriptors to follow*/ 0x01, /*bNumDescriptors: Number of HID class descriptors to follow*/
0x22, /*bDescriptorType*/ 0x22, /*bDescriptorType*/
HID_MOUSE_REPORT_DESC_SIZE,/*wItemLength: Total length of Report descriptor*/ HID_MOUSE_REPORT_DESC_SIZE,/*wItemLength: Total length of Report descriptor*/
0x00, 0x00,
/******************** Descriptor of Mouse endpoint ********************/ /******************** Descriptor of Mouse endpoint ********************/
/* 27 */ /* 27 */
0x07, /*bLength: Endpoint Descriptor size*/ 0x07, /*bLength: Endpoint Descriptor size*/
USB_DESC_TYPE_ENDPOINT, /*bDescriptorType:*/ USB_DESC_TYPE_ENDPOINT, /*bDescriptorType:*/
HID_EPIN_ADDR, /*bEndpointAddress: Endpoint Address (IN)*/ HID_EPIN_ADDR, /*bEndpointAddress: Endpoint Address (IN)*/
0x03, /*bmAttributes: Interrupt endpoint*/ 0x03, /*bmAttributes: Interrupt endpoint*/
HID_EPIN_SIZE, /*wMaxPacketSize: 4 Byte max */ HID_EPIN_SIZE, /*wMaxPacketSize: 4 Byte max */
0x00, 0x00,
HID_FS_BINTERVAL, /*bInterval: Polling Interval (10 ms)*/ HID_FS_BINTERVAL, /*bInterval: Polling Interval (10 ms)*/
/* 34 */ /* 34 */
} ; };
/* USB HID device Configuration Descriptor */ /* USB HID device Configuration Descriptor */
__ALIGN_BEGIN static uint8_t USBD_HID_Desc[USB_HID_DESC_SIZ] __ALIGN_END = __ALIGN_BEGIN static uint8_t USBD_HID_Desc[USB_HID_DESC_SIZ] __ALIGN_END =
{ {
/* 18 */ /* 18 */
0x09, /*bLength: HID Descriptor size*/ 0x09, /*bLength: HID Descriptor size*/
HID_DESCRIPTOR_TYPE, /*bDescriptorType: HID*/ HID_DESCRIPTOR_TYPE, /*bDescriptorType: HID*/
0x11, /*bcdHID: HID Class Spec release number*/ 0x11, /*bcdHID: HID Class Spec release number*/
0x01, 0x01,
0x00, /*bCountryCode: Hardware target country*/ 0x00, /*bCountryCode: Hardware target country*/
0x01, /*bNumDescriptors: Number of HID class descriptors to follow*/ 0x01, /*bNumDescriptors: Number of HID class descriptors to follow*/
0x22, /*bDescriptorType*/ 0x22, /*bDescriptorType*/
HID_MOUSE_REPORT_DESC_SIZE,/*wItemLength: Total length of Report descriptor*/ HID_MOUSE_REPORT_DESC_SIZE,/*wItemLength: Total length of Report descriptor*/
0x00, 0x00,
}; };
/* USB Standard Device Descriptor */ /* USB Standard Device Descriptor */
__ALIGN_BEGIN static uint8_t USBD_HID_DeviceQualifierDesc[USB_LEN_DEV_QUALIFIER_DESC] __ALIGN_END = __ALIGN_BEGIN static uint8_t USBD_HID_DeviceQualifierDesc[USB_LEN_DEV_QUALIFIER_DESC] __ALIGN_END =
{ {
USB_LEN_DEV_QUALIFIER_DESC, USB_LEN_DEV_QUALIFIER_DESC,
USB_DESC_TYPE_DEVICE_QUALIFIER, USB_DESC_TYPE_DEVICE_QUALIFIER,
0x00, 0x00,
0x02, 0x02,
0x00, 0x00,
0x00, 0x00,
0x00, 0x00,
0x40, 0x40,
0x01, 0x01,
0x00, 0x00,
}; };
__ALIGN_BEGIN static uint8_t HID_MOUSE_ReportDesc[HID_MOUSE_REPORT_DESC_SIZE] __ALIGN_END = __ALIGN_BEGIN static uint8_t HID_MOUSE_ReportDesc[HID_MOUSE_REPORT_DESC_SIZE] __ALIGN_END =
{ {
0x05, 0x01, 0x05, 0x01,
0x09, 0x02, 0x09, 0x02,
0xA1, 0x01, 0xA1, 0x01,
0x09, 0x01, 0x09, 0x01,
0xA1, 0x00, 0xA1, 0x00,
0x05, 0x09, 0x05, 0x09,
0x19, 0x01, 0x19, 0x01,
0x29, 0x03, 0x29, 0x03,
0x15, 0x00, 0x15, 0x00,
0x25, 0x01, 0x25, 0x01,
0x95, 0x03, 0x95, 0x03,
0x75, 0x01, 0x75, 0x01,
0x81, 0x02, 0x81, 0x02,
0x95, 0x01, 0x95, 0x01,
0x75, 0x05, 0x75, 0x05,
0x81, 0x01, 0x81, 0x01,
0x05, 0x01, 0x05, 0x01,
0x09, 0x30, 0x09, 0x30,
0x09, 0x31, 0x09, 0x31,
0x09, 0x38, 0x09, 0x38,
0x15, 0x81, 0x15, 0x81,
0x25, 0x7F, 0x25, 0x7F,
0x75, 0x08, 0x75, 0x08,
0x95, 0x03, 0x95, 0x03,
0x81, 0x06, 0x81, 0x06,
0xC0, 0x09, 0xC0, 0x09,
0x3c, 0x05, 0x3c, 0x05,
0xff, 0x09, 0xff, 0x09,
0x01, 0x15, 0x01, 0x15,
0x00, 0x25, 0x00, 0x25,
0x01, 0x75, 0x01, 0x75,
0x01, 0x95, 0x01, 0x95,
0x02, 0xb1, 0x02, 0xb1,
0x22, 0x75, 0x22, 0x75,
0x06, 0x95, 0x06, 0x95,
0x01, 0xb1, 0x01, 0xb1,
0x01, 0xc0 0x01, 0xc0
}; };
/** /**
* @} * @}
*/ */
/** @defgroup USBD_HID_Private_Functions /** @defgroup USBD_HID_Private_Functions
* @{ * @{
*/ */
/** /**
* @brief USBD_HID_Init * @brief USBD_HID_Init
@ -279,28 +279,26 @@ __ALIGN_BEGIN static uint8_t HID_MOUSE_ReportDesc[HID_MOUSE_REPORT_DESC_SIZE] _
* @param cfgidx: Configuration index * @param cfgidx: Configuration index
* @retval status * @retval status
*/ */
static uint8_t USBD_HID_Init (USBD_HandleTypeDef *pdev, static uint8_t USBD_HID_Init(USBD_HandleTypeDef *pdev,
uint8_t cfgidx) uint8_t cfgidx)
{ {
uint8_t ret = 0; uint8_t ret = 0;
/* Open EP IN */ /* Open EP IN */
USBD_LL_OpenEP(pdev, USBD_LL_OpenEP(pdev,
HID_EPIN_ADDR, HID_EPIN_ADDR,
USBD_EP_TYPE_INTR, USBD_EP_TYPE_INTR,
HID_EPIN_SIZE); HID_EPIN_SIZE);
pdev->pClassData = USBD_malloc(sizeof (USBD_HID_HandleTypeDef)); pdev->pClassData = USBD_malloc(sizeof(USBD_HID_HandleTypeDef));
if(pdev->pClassData == NULL) if (pdev->pClassData == NULL) {
{ ret = 1;
ret = 1; }
} else {
else ((USBD_HID_HandleTypeDef *) pdev->pClassData)->state = HID_IDLE;
{ }
((USBD_HID_HandleTypeDef *)pdev->pClassData)->state = HID_IDLE; return ret;
}
return ret;
} }
/** /**
@ -310,21 +308,20 @@ static uint8_t USBD_HID_Init (USBD_HandleTypeDef *pdev,
* @param cfgidx: Configuration index * @param cfgidx: Configuration index
* @retval status * @retval status
*/ */
static uint8_t USBD_HID_DeInit (USBD_HandleTypeDef *pdev, static uint8_t USBD_HID_DeInit(USBD_HandleTypeDef *pdev,
uint8_t cfgidx) uint8_t cfgidx)
{ {
/* Close HID EPs */ /* Close HID EPs */
USBD_LL_CloseEP(pdev, USBD_LL_CloseEP(pdev,
HID_EPIN_ADDR); HID_EPIN_ADDR);
/* FRee allocated memory */ /* FRee allocated memory */
if(pdev->pClassData != NULL) if (pdev->pClassData != NULL) {
{ USBD_free(pdev->pClassData);
USBD_free(pdev->pClassData); pdev->pClassData = NULL;
pdev->pClassData = NULL; }
}
return USBD_OK;
return USBD_OK;
} }
/** /**
@ -334,79 +331,74 @@ static uint8_t USBD_HID_DeInit (USBD_HandleTypeDef *pdev,
* @param req: usb requests * @param req: usb requests
* @retval status * @retval status
*/ */
static uint8_t USBD_HID_Setup (USBD_HandleTypeDef *pdev, static uint8_t USBD_HID_Setup(USBD_HandleTypeDef *pdev,
USBD_SetupReqTypedef *req) USBD_SetupReqTypedef *req)
{ {
uint16_t len = 0; uint16_t len = 0;
uint8_t *pbuf = NULL; uint8_t *pbuf = NULL;
USBD_HID_HandleTypeDef *hhid = (USBD_HID_HandleTypeDef*) pdev->pClassData; USBD_HID_HandleTypeDef *hhid = (USBD_HID_HandleTypeDef *) pdev->pClassData;
switch (req->bmRequest & USB_REQ_TYPE_MASK) switch (req->bmRequest & USB_REQ_TYPE_MASK) {
{ case USB_REQ_TYPE_CLASS :
case USB_REQ_TYPE_CLASS : switch (req->bRequest) {
switch (req->bRequest)
{
case HID_REQ_SET_PROTOCOL:
hhid->Protocol = (uint8_t) (req->wValue);
case HID_REQ_SET_PROTOCOL: break;
hhid->Protocol = (uint8_t)(req->wValue);
break; case HID_REQ_GET_PROTOCOL:
USBD_CtlSendData(pdev,
case HID_REQ_GET_PROTOCOL: (uint8_t *) &hhid->Protocol,
USBD_CtlSendData (pdev, 1);
(uint8_t *)&hhid->Protocol, break;
1);
break; case HID_REQ_SET_IDLE:
hhid->IdleState = (uint8_t) (req->wValue >> 8);
case HID_REQ_SET_IDLE: break;
hhid->IdleState = (uint8_t)(req->wValue >> 8);
break; case HID_REQ_GET_IDLE:
USBD_CtlSendData(pdev,
case HID_REQ_GET_IDLE: (uint8_t *) &hhid->IdleState,
USBD_CtlSendData (pdev, 1);
(uint8_t *)&hhid->IdleState, break;
1);
break; default:
USBD_CtlError(pdev, req);
default: return USBD_FAIL;
USBD_CtlError (pdev, req); }
return USBD_FAIL; break;
}
break; case USB_REQ_TYPE_STANDARD:
switch (req->bRequest) {
case USB_REQ_TYPE_STANDARD: case USB_REQ_GET_DESCRIPTOR:
switch (req->bRequest) if (req->wValue >> 8 == HID_REPORT_DESC) {
{ len = MIN(HID_MOUSE_REPORT_DESC_SIZE, req->wLength);
case USB_REQ_GET_DESCRIPTOR: pbuf = HID_MOUSE_ReportDesc;
if( req->wValue >> 8 == HID_REPORT_DESC) }
{ else if (req->wValue >> 8 == HID_DESCRIPTOR_TYPE) {
len = MIN(HID_MOUSE_REPORT_DESC_SIZE , req->wLength); pbuf = USBD_HID_Desc;
pbuf = HID_MOUSE_ReportDesc; len = MIN(USB_HID_DESC_SIZ, req->wLength);
} }
else if( req->wValue >> 8 == HID_DESCRIPTOR_TYPE)
{ USBD_CtlSendData(pdev,
pbuf = USBD_HID_Desc; pbuf,
len = MIN(USB_HID_DESC_SIZ , req->wLength); len);
}
break;
USBD_CtlSendData (pdev,
pbuf, case USB_REQ_GET_INTERFACE :
len); USBD_CtlSendData(pdev,
(uint8_t *) &hhid->AltSetting,
break; 1);
break;
case USB_REQ_GET_INTERFACE :
USBD_CtlSendData (pdev, case USB_REQ_SET_INTERFACE :
(uint8_t *)&hhid->AltSetting, hhid->AltSetting = (uint8_t) (req->wValue);
1); break;
break; }
}
case USB_REQ_SET_INTERFACE : return USBD_OK;
hhid->AltSetting = (uint8_t)(req->wValue);
break;
}
}
return USBD_OK;
} }
/** /**
@ -416,24 +408,22 @@ static uint8_t USBD_HID_Setup (USBD_HandleTypeDef *pdev,
* @param buff: pointer to report * @param buff: pointer to report
* @retval status * @retval status
*/ */
uint8_t USBD_HID_SendReport (USBD_HandleTypeDef *pdev, uint8_t USBD_HID_SendReport(USBD_HandleTypeDef *pdev,
uint8_t *report, uint8_t *report,
uint16_t len) uint16_t len)
{ {
USBD_HID_HandleTypeDef *hhid = (USBD_HID_HandleTypeDef*)pdev->pClassData; USBD_HID_HandleTypeDef *hhid = (USBD_HID_HandleTypeDef *) pdev->pClassData;
if (pdev->dev_state == USBD_STATE_CONFIGURED ) if (pdev->dev_state == USBD_STATE_CONFIGURED) {
{ if (hhid->state == HID_IDLE) {
if(hhid->state == HID_IDLE) hhid->state = HID_BUSY;
{ USBD_LL_Transmit(pdev,
hhid->state = HID_BUSY; HID_EPIN_ADDR,
USBD_LL_Transmit (pdev, report,
HID_EPIN_ADDR, len);
report, }
len); }
} return USBD_OK;
}
return USBD_OK;
} }
/** /**
@ -442,26 +432,25 @@ uint8_t USBD_HID_SendReport (USBD_HandleTypeDef *pdev,
* @param pdev: device instance * @param pdev: device instance
* @retval polling interval * @retval polling interval
*/ */
uint32_t USBD_HID_GetPollingInterval (USBD_HandleTypeDef *pdev) uint32_t USBD_HID_GetPollingInterval(USBD_HandleTypeDef *pdev)
{ {
uint32_t polling_interval = 0; uint32_t polling_interval = 0;
/* HIGH-speed endpoints */ /* HIGH-speed endpoints */
if(pdev->dev_speed == USBD_SPEED_HIGH) if (pdev->dev_speed == USBD_SPEED_HIGH) {
{ /* Sets the data transfer polling interval for high speed transfers.
/* Sets the data transfer polling interval for high speed transfers. Values between 1..16 are allowed. Values correspond to interval
Values between 1..16 are allowed. Values correspond to interval of 2 ^ (bInterval-1). This option (8 ms, corresponds to HID_HS_BINTERVAL */
of 2 ^ (bInterval-1). This option (8 ms, corresponds to HID_HS_BINTERVAL */ polling_interval = (((1 << (HID_HS_BINTERVAL - 1))) / 8);
polling_interval = (((1 <<(HID_HS_BINTERVAL - 1)))/8); }
} else /* LOW and FULL-speed endpoints */
else /* LOW and FULL-speed endpoints */ {
{ /* Sets the data transfer polling interval for low and full
/* Sets the data transfer polling interval for low and full speed transfers */
speed transfers */ polling_interval = HID_FS_BINTERVAL;
polling_interval = HID_FS_BINTERVAL; }
}
return ((uint32_t) (polling_interval));
return ((uint32_t)(polling_interval));
} }
/** /**
@ -471,10 +460,10 @@ uint32_t USBD_HID_GetPollingInterval (USBD_HandleTypeDef *pdev)
* @param length : pointer data length * @param length : pointer data length
* @retval pointer to descriptor buffer * @retval pointer to descriptor buffer
*/ */
static uint8_t *USBD_HID_GetCfgDesc (uint16_t *length) static uint8_t *USBD_HID_GetCfgDesc(uint16_t *length)
{ {
*length = sizeof (USBD_HID_CfgDesc); *length = sizeof(USBD_HID_CfgDesc);
return USBD_HID_CfgDesc; return USBD_HID_CfgDesc;
} }
@ -485,14 +474,15 @@ static uint8_t *USBD_HID_GetCfgDesc (uint16_t *length)
* @param epnum: endpoint index * @param epnum: endpoint index
* @retval status * @retval status
*/ */
static uint8_t USBD_HID_DataIn (USBD_HandleTypeDef *pdev, static uint8_t USBD_HID_DataIn(USBD_HandleTypeDef *pdev,
uint8_t epnum) uint8_t epnum)
{ {
/* Ensure that the FIFO is empty before a new transfer, this condition could /* Ensure that the FIFO is empty before a new transfer, this condition could
be caused by a new transfer before the end of the previous transfer */ be caused by a new transfer before the end of the previous transfer */
((USBD_HID_HandleTypeDef *)pdev->pClassData)->state = HID_IDLE; ((USBD_HID_HandleTypeDef *) pdev->pClassData)->state = HID_IDLE;
return USBD_OK;
return USBD_OK;
} }
@ -502,24 +492,24 @@ static uint8_t USBD_HID_DataIn (USBD_HandleTypeDef *pdev,
* @param length : pointer data length * @param length : pointer data length
* @retval pointer to descriptor buffer * @retval pointer to descriptor buffer
*/ */
static uint8_t *USBD_HID_GetDeviceQualifierDesc (uint16_t *length) static uint8_t *USBD_HID_GetDeviceQualifierDesc(uint16_t *length)
{ {
*length = sizeof (USBD_HID_DeviceQualifierDesc); *length = sizeof(USBD_HID_DeviceQualifierDesc);
return USBD_HID_DeviceQualifierDesc; return USBD_HID_DeviceQualifierDesc;
} }
/** /**
* @} * @}
*/ */
/** /**
* @} * @}
*/ */
/** /**
* @} * @}
*/ */
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

@ -1,167 +0,0 @@
/**
******************************************************************************
* @file usbd_core.h
* @author MCD Application Team
* @version V2.4.2
* @date 11-December-2015
* @brief Header file for usbd_core.c file
******************************************************************************
* @attention
*
* <h2><center>&copy; COPYRIGHT 2015 STMicroelectronics</center></h2>
*
* Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
* You may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.st.com/software_license_agreement_liberty_v2
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __USBD_CORE_H
#define __USBD_CORE_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "usbd_conf.h"
#include "usbd_def.h"
#include "usbd_ioreq.h"
#include "usbd_ctlreq.h"
/** @addtogroup STM32_USB_DEVICE_LIBRARY
* @{
*/
/** @defgroup USBD_CORE
* @brief This file is the Header file for usbd_core.c file
* @{
*/
/** @defgroup USBD_CORE_Exported_Defines
* @{
*/
/**
* @}
*/
/** @defgroup USBD_CORE_Exported_TypesDefinitions
* @{
*/
/**
* @}
*/
/** @defgroup USBD_CORE_Exported_Macros
* @{
*/
/**
* @}
*/
/** @defgroup USBD_CORE_Exported_Variables
* @{
*/
#define USBD_SOF USBD_LL_SOF
/**
* @}
*/
/** @defgroup USBD_CORE_Exported_FunctionsPrototype
* @{
*/
USBD_StatusTypeDef USBD_Init(USBD_HandleTypeDef *pdev, USBD_DescriptorsTypeDef *pdesc, uint8_t id);
USBD_StatusTypeDef USBD_DeInit(USBD_HandleTypeDef *pdev);
USBD_StatusTypeDef USBD_Start (USBD_HandleTypeDef *pdev);
USBD_StatusTypeDef USBD_Stop (USBD_HandleTypeDef *pdev);
USBD_StatusTypeDef USBD_RegisterClass(USBD_HandleTypeDef *pdev, USBD_ClassTypeDef *pclass);
USBD_StatusTypeDef USBD_RunTestMode (USBD_HandleTypeDef *pdev);
USBD_StatusTypeDef USBD_SetClassConfig(USBD_HandleTypeDef *pdev, uint8_t cfgidx);
USBD_StatusTypeDef USBD_ClrClassConfig(USBD_HandleTypeDef *pdev, uint8_t cfgidx);
USBD_StatusTypeDef USBD_LL_SetupStage(USBD_HandleTypeDef *pdev, uint8_t *psetup);
USBD_StatusTypeDef USBD_LL_DataOutStage(USBD_HandleTypeDef *pdev , uint8_t epnum, uint8_t *pdata);
USBD_StatusTypeDef USBD_LL_DataInStage(USBD_HandleTypeDef *pdev , uint8_t epnum, uint8_t *pdata);
USBD_StatusTypeDef USBD_LL_Reset(USBD_HandleTypeDef *pdev);
USBD_StatusTypeDef USBD_LL_SetSpeed(USBD_HandleTypeDef *pdev, USBD_SpeedTypeDef speed);
USBD_StatusTypeDef USBD_LL_Suspend(USBD_HandleTypeDef *pdev);
USBD_StatusTypeDef USBD_LL_Resume(USBD_HandleTypeDef *pdev);
USBD_StatusTypeDef USBD_LL_SOF(USBD_HandleTypeDef *pdev);
USBD_StatusTypeDef USBD_LL_IsoINIncomplete(USBD_HandleTypeDef *pdev, uint8_t epnum);
USBD_StatusTypeDef USBD_LL_IsoOUTIncomplete(USBD_HandleTypeDef *pdev, uint8_t epnum);
USBD_StatusTypeDef USBD_LL_DevConnected(USBD_HandleTypeDef *pdev);
USBD_StatusTypeDef USBD_LL_DevDisconnected(USBD_HandleTypeDef *pdev);
/* USBD Low Level Driver */
USBD_StatusTypeDef USBD_LL_Init (USBD_HandleTypeDef *pdev);
USBD_StatusTypeDef USBD_LL_DeInit (USBD_HandleTypeDef *pdev);
USBD_StatusTypeDef USBD_LL_Start(USBD_HandleTypeDef *pdev);
USBD_StatusTypeDef USBD_LL_Stop (USBD_HandleTypeDef *pdev);
USBD_StatusTypeDef USBD_LL_OpenEP (USBD_HandleTypeDef *pdev,
uint8_t ep_addr,
uint8_t ep_type,
uint16_t ep_mps);
USBD_StatusTypeDef USBD_LL_CloseEP (USBD_HandleTypeDef *pdev, uint8_t ep_addr);
USBD_StatusTypeDef USBD_LL_FlushEP (USBD_HandleTypeDef *pdev, uint8_t ep_addr);
USBD_StatusTypeDef USBD_LL_StallEP (USBD_HandleTypeDef *pdev, uint8_t ep_addr);
USBD_StatusTypeDef USBD_LL_ClearStallEP (USBD_HandleTypeDef *pdev, uint8_t ep_addr);
uint8_t USBD_LL_IsStallEP (USBD_HandleTypeDef *pdev, uint8_t ep_addr);
USBD_StatusTypeDef USBD_LL_SetUSBAddress (USBD_HandleTypeDef *pdev, uint8_t dev_addr);
USBD_StatusTypeDef USBD_LL_Transmit (USBD_HandleTypeDef *pdev,
uint8_t ep_addr,
uint8_t *pbuf,
uint16_t size);
USBD_StatusTypeDef USBD_LL_PrepareReceive(USBD_HandleTypeDef *pdev,
uint8_t ep_addr,
uint8_t *pbuf,
uint16_t size);
uint32_t USBD_LL_GetRxDataSize (USBD_HandleTypeDef *pdev, uint8_t ep_addr);
void USBD_LL_Delay (uint32_t Delay);
/**
* @}
*/
#ifdef __cplusplus
}
#endif
#endif /* __USBD_CORE_H */
/**
* @}
*/
/**
* @}
*/
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

@ -58,9 +58,9 @@
*/ */
#define USBD_VID 1155 #define USBD_VID 1155
#define USBD_LANGID_STRING 1033 #define USBD_LANGID_STRING 1033
#define USBD_MANUFACTURER_STRING "STMicroelectronics" #define USBD_MANUFACTURER_STRING "MightyPork"
#define USBD_PID_FS 22315 #define USBD_PID_FS 22315
#define USBD_PRODUCT_STRING_FS "STM32 Human interface" #define USBD_PRODUCT_STRING_FS "Screen Rotation Sensor"
#define USBD_SERIALNUMBER_STRING_FS "00000000001A" #define USBD_SERIALNUMBER_STRING_FS "00000000001A"
#define USBD_CONFIGURATION_STRING_FS "HID Config" #define USBD_CONFIGURATION_STRING_FS "HID Config"
#define USBD_INTERFACE_STRING_FS "HID Interface" #define USBD_INTERFACE_STRING_FS "HID Interface"

Loading…
Cancel
Save