diff options
Diffstat (limited to 'thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/JoyStickMouse/src/usb_desc.c')
-rw-r--r-- | thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/JoyStickMouse/src/usb_desc.c | 243 |
1 files changed, 243 insertions, 0 deletions
diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/JoyStickMouse/src/usb_desc.c b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/JoyStickMouse/src/usb_desc.c new file mode 100644 index 0000000..690639f --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/JoyStickMouse/src/usb_desc.c @@ -0,0 +1,243 @@ +/** + ****************************************************************************** + * @file usb_desc.c + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief Descriptors for Joystick Mouse Demo + ****************************************************************************** + * @attention + * + * <h2><center>© COPYRIGHT 2013 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. + * + ****************************************************************************** + */ + + +/* Includes ------------------------------------------------------------------*/ +#include "usb_lib.h" +#include "usb_desc.h" + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Extern variables ----------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ + +/* USB Standard Device Descriptor */ +const uint8_t Joystick_DeviceDescriptor[JOYSTICK_SIZ_DEVICE_DESC] = + { + 0x12, /*bLength */ + USB_DEVICE_DESCRIPTOR_TYPE, /*bDescriptorType*/ + 0x00, /*bcdUSB */ + 0x02, + 0x00, /*bDeviceClass*/ + 0x00, /*bDeviceSubClass*/ + 0x00, /*bDeviceProtocol*/ + 0x40, /*bMaxPacketSize 64*/ + 0x83, /*idVendor (0x0483)*/ + 0x04, + 0x10, /*idProduct = 0x5710*/ + 0x57, + 0x00, /*bcdDevice rel. 2.00*/ + 0x02, + 1, /*Index of string descriptor describing + manufacturer */ + 2, /*Index of string descriptor describing + product*/ + 3, /*Index of string descriptor describing the + device serial number */ + 0x01 /*bNumConfigurations*/ + } + ; /* Joystick_DeviceDescriptor */ + + +/* USB Configuration Descriptor */ +/* All Descriptors (Configuration, Interface, Endpoint, Class, Vendor */ +const uint8_t Joystick_ConfigDescriptor[JOYSTICK_SIZ_CONFIG_DESC] = + { + 0x09, /* bLength: Configuration Descriptor size */ + USB_CONFIGURATION_DESCRIPTOR_TYPE, /* bDescriptorType: Configuration */ + JOYSTICK_SIZ_CONFIG_DESC, + /* wTotalLength: Bytes returned */ + 0x00, + 0x01, /*bNumInterfaces: 1 interface*/ + 0x01, /*bConfigurationValue: Configuration value*/ + 0x00, /*iConfiguration: Index of string descriptor describing + the configuration*/ + 0xE0, /*bmAttributes: Self powered */ + 0x32, /*MaxPower 100 mA: this current is used for detecting Vbus*/ + + /************** Descriptor of Joystick Mouse interface ****************/ + /* 09 */ + 0x09, /*bLength: Interface Descriptor size*/ + USB_INTERFACE_DESCRIPTOR_TYPE,/*bDescriptorType: Interface descriptor type*/ + 0x00, /*bInterfaceNumber: Number of Interface*/ + 0x00, /*bAlternateSetting: Alternate setting*/ + 0x01, /*bNumEndpoints*/ + 0x03, /*bInterfaceClass: HID*/ + 0x01, /*bInterfaceSubClass : 1=BOOT, 0=no boot*/ + 0x02, /*nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse*/ + 0, /*iInterface: Index of string descriptor*/ + /******************** Descriptor of Joystick Mouse HID ********************/ + /* 18 */ + 0x09, /*bLength: HID Descriptor size*/ + HID_DESCRIPTOR_TYPE, /*bDescriptorType: HID*/ + 0x00, /*bcdHID: HID Class Spec release number*/ + 0x01, + 0x00, /*bCountryCode: Hardware target country*/ + 0x01, /*bNumDescriptors: Number of HID class descriptors to follow*/ + 0x22, /*bDescriptorType*/ + JOYSTICK_SIZ_REPORT_DESC,/*wItemLength: Total length of Report descriptor*/ + 0x00, + /******************** Descriptor of Joystick Mouse endpoint ********************/ + /* 27 */ + 0x07, /*bLength: Endpoint Descriptor size*/ + USB_ENDPOINT_DESCRIPTOR_TYPE, /*bDescriptorType:*/ + + 0x81, /*bEndpointAddress: Endpoint Address (IN)*/ + 0x03, /*bmAttributes: Interrupt endpoint*/ + 0x04, /*wMaxPacketSize: 4 Byte max */ + 0x00, + 0x20, /*bInterval: Polling Interval (32 ms)*/ + /* 34 */ + } + ; /* MOUSE_ConfigDescriptor */ +const uint8_t Joystick_ReportDescriptor[JOYSTICK_SIZ_REPORT_DESC] = + { + 0x05, /*Usage Page(Generic Desktop)*/ + 0x01, + 0x09, /*Usage(Mouse)*/ + 0x02, + 0xA1, /*Collection(Logical)*/ + 0x01, + 0x09, /*Usage(Pointer)*/ + 0x01, + /* 8 */ + 0xA1, /*Collection(Linked)*/ + 0x00, + 0x05, /*Usage Page(Buttons)*/ + 0x09, + 0x19, /*Usage Minimum(1)*/ + 0x01, + 0x29, /*Usage Maximum(3)*/ + 0x03, + /* 16 */ + 0x15, /*Logical Minimum(0)*/ + 0x00, + 0x25, /*Logical Maximum(1)*/ + 0x01, + 0x95, /*Report Count(3)*/ + 0x03, + 0x75, /*Report Size(1)*/ + 0x01, + /* 24 */ + 0x81, /*Input(Variable)*/ + 0x02, + 0x95, /*Report Count(1)*/ + 0x01, + 0x75, /*Report Size(5)*/ + 0x05, + 0x81, /*Input(Constant,Array)*/ + 0x01, + /* 32 */ + 0x05, /*Usage Page(Generic Desktop)*/ + 0x01, + 0x09, /*Usage(X axis)*/ + 0x30, + 0x09, /*Usage(Y axis)*/ + 0x31, + 0x09, /*Usage(Wheel)*/ + 0x38, + /* 40 */ + 0x15, /*Logical Minimum(-127)*/ + 0x81, + 0x25, /*Logical Maximum(127)*/ + 0x7F, + 0x75, /*Report Size(8)*/ + 0x08, + 0x95, /*Report Count(3)*/ + 0x03, + /* 48 */ + 0x81, /*Input(Variable, Relative)*/ + 0x06, + 0xC0, /*End Collection*/ + 0x09, + 0x3c, + 0x05, + 0xff, + 0x09, + /* 56 */ + 0x01, + 0x15, + 0x00, + 0x25, + 0x01, + 0x75, + 0x01, + 0x95, + /* 64 */ + 0x02, + 0xb1, + 0x22, + 0x75, + 0x06, + 0x95, + 0x01, + 0xb1, + /* 72 */ + 0x01, + 0xc0 + } + ; /* Joystick_ReportDescriptor */ + +/* USB String Descriptors (optional) */ +const uint8_t Joystick_StringLangID[JOYSTICK_SIZ_STRING_LANGID] = + { + JOYSTICK_SIZ_STRING_LANGID, + USB_STRING_DESCRIPTOR_TYPE, + 0x09, + 0x04 + } + ; /* LangID = 0x0409: U.S. English */ + +const uint8_t Joystick_StringVendor[JOYSTICK_SIZ_STRING_VENDOR] = + { + JOYSTICK_SIZ_STRING_VENDOR, /* Size of Vendor string */ + USB_STRING_DESCRIPTOR_TYPE, /* bDescriptorType*/ + /* Manufacturer: "STMicroelectronics" */ + 'S', 0, 'T', 0, 'M', 0, 'i', 0, 'c', 0, 'r', 0, 'o', 0, 'e', 0, + 'l', 0, 'e', 0, 'c', 0, 't', 0, 'r', 0, 'o', 0, 'n', 0, 'i', 0, + 'c', 0, 's', 0 + }; + +const uint8_t Joystick_StringProduct[JOYSTICK_SIZ_STRING_PRODUCT] = + { + JOYSTICK_SIZ_STRING_PRODUCT, /* bLength */ + USB_STRING_DESCRIPTOR_TYPE, /* bDescriptorType */ + 'S', 0, 'T', 0, 'M', 0, '3', 0, '2', 0, ' ', 0, 'J', 0, + 'o', 0, 'y', 0, 's', 0, 't', 0, 'i', 0, 'c', 0, 'k', 0 + }; +uint8_t Joystick_StringSerial[JOYSTICK_SIZ_STRING_SERIAL] = + { + JOYSTICK_SIZ_STRING_SERIAL, /* bLength */ + USB_STRING_DESCRIPTOR_TYPE, /* bDescriptorType */ + 'S', 0, 'T', 0, 'M', 0, '3', 0, '2', 0 + }; + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ + |