| @@ -0,0 +1,167 @@ | |||
| /** | |||
| ****************************************************************************** | |||
| * @file usbd_customhid.h | |||
| * @author MCD Application Team | |||
| * @brief header file for the usbd_customhid.c file. | |||
| ****************************************************************************** | |||
| * @attention | |||
| * | |||
| * <h2><center>© Copyright (c) 2015 STMicroelectronics. | |||
| * All rights reserved.</center></h2> | |||
| * | |||
| * This software component is licensed by ST under Ultimate Liberty license | |||
| * SLA0044, the "License"; You may not use this file except in compliance with | |||
| * the License. You may obtain a copy of the License at: | |||
| * www.st.com/SLA0044 | |||
| * | |||
| ****************************************************************************** | |||
| */ | |||
| /* Define to prevent recursive inclusion -------------------------------------*/ | |||
| #ifndef __USB_CUSTOMHID_H | |||
| #define __USB_CUSTOMHID_H | |||
| #ifdef __cplusplus | |||
| extern "C" { | |||
| #endif | |||
| /* Includes ------------------------------------------------------------------*/ | |||
| #include "usbd_ioreq.h" | |||
| /** @addtogroup STM32_USB_DEVICE_LIBRARY | |||
| * @{ | |||
| */ | |||
| /** @defgroup USBD_CUSTOM_HID | |||
| * @brief This file is the Header file for USBD_customhid.c | |||
| * @{ | |||
| */ | |||
| /** @defgroup USBD_CUSTOM_HID_Exported_Defines | |||
| * @{ | |||
| */ | |||
| #define CUSTOM_HID_EPIN_ADDR 0x81U | |||
| #define CUSTOM_HID_EPIN_SIZE 0x02U | |||
| #define CUSTOM_HID_EPOUT_ADDR 0x01U | |||
| #define CUSTOM_HID_EPOUT_SIZE 0x02U | |||
| #define USB_CUSTOM_HID_CONFIG_DESC_SIZ 41U | |||
| #define USB_CUSTOM_HID_DESC_SIZ 9U | |||
| #ifndef CUSTOM_HID_HS_BINTERVAL | |||
| #define CUSTOM_HID_HS_BINTERVAL 0x05U | |||
| #endif /* CUSTOM_HID_HS_BINTERVAL */ | |||
| #ifndef CUSTOM_HID_FS_BINTERVAL | |||
| #define CUSTOM_HID_FS_BINTERVAL 0x05U | |||
| #endif /* CUSTOM_HID_FS_BINTERVAL */ | |||
| #ifndef USBD_CUSTOMHID_OUTREPORT_BUF_SIZE | |||
| #define USBD_CUSTOMHID_OUTREPORT_BUF_SIZE 0x02U | |||
| #endif /* USBD_CUSTOMHID_OUTREPORT_BUF_SIZE */ | |||
| #ifndef USBD_CUSTOM_HID_REPORT_DESC_SIZE | |||
| #define USBD_CUSTOM_HID_REPORT_DESC_SIZE 163U | |||
| #endif /* USBD_CUSTOM_HID_REPORT_DESC_SIZE */ | |||
| #define CUSTOM_HID_DESCRIPTOR_TYPE 0x21U | |||
| #define CUSTOM_HID_REPORT_DESC 0x22U | |||
| #define CUSTOM_HID_REQ_SET_PROTOCOL 0x0BU | |||
| #define CUSTOM_HID_REQ_GET_PROTOCOL 0x03U | |||
| #define CUSTOM_HID_REQ_SET_IDLE 0x0AU | |||
| #define CUSTOM_HID_REQ_GET_IDLE 0x02U | |||
| #define CUSTOM_HID_REQ_SET_REPORT 0x09U | |||
| #define CUSTOM_HID_REQ_GET_REPORT 0x01U | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup USBD_CORE_Exported_TypesDefinitions | |||
| * @{ | |||
| */ | |||
| typedef enum | |||
| { | |||
| CUSTOM_HID_IDLE = 0U, | |||
| CUSTOM_HID_BUSY, | |||
| } | |||
| CUSTOM_HID_StateTypeDef; | |||
| typedef struct _USBD_CUSTOM_HID_Itf | |||
| { | |||
| uint8_t *pReport; | |||
| uint16_t pReportLen; | |||
| int8_t (* Init)(void); | |||
| int8_t (* DeInit)(void); | |||
| int8_t (* OutEvent)(uint8_t event_idx, uint8_t state); | |||
| } USBD_CUSTOM_HID_ItfTypeDef; | |||
| typedef struct | |||
| { | |||
| uint8_t Report_buf[USBD_CUSTOMHID_OUTREPORT_BUF_SIZE]; | |||
| uint32_t Protocol; | |||
| uint32_t IdleState; | |||
| uint32_t AltSetting; | |||
| uint32_t IsReportAvailable; | |||
| CUSTOM_HID_StateTypeDef state; | |||
| } | |||
| USBD_CUSTOM_HID_HandleTypeDef; | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup USBD_CORE_Exported_Macros | |||
| * @{ | |||
| */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup USBD_CORE_Exported_Variables | |||
| * @{ | |||
| */ | |||
| extern USBD_ClassTypeDef USBD_CUSTOM_HID; | |||
| #define USBD_CUSTOM_HID_CLASS &USBD_CUSTOM_HID | |||
| /** | |||
| * @} | |||
| */ | |||
| /** @defgroup USB_CORE_Exported_Functions | |||
| * @{ | |||
| */ | |||
| uint8_t USBD_CUSTOM_HID_SendReport(USBD_HandleTypeDef *pdev, | |||
| uint8_t *report, | |||
| uint16_t len); | |||
| uint8_t USBD_CUSTOM_HID_RegisterInterface(USBD_HandleTypeDef *pdev, | |||
| USBD_CUSTOM_HID_ItfTypeDef *fops); | |||
| /** | |||
| * @} | |||
| */ | |||
| #ifdef __cplusplus | |||
| } | |||
| #endif | |||
| #endif /* __USB_CUSTOMHID_H */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /** | |||
| * @} | |||
| */ | |||
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | |||