| @@ -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****/ | |||||