📄 hiddtransferdriverdesc.c
字号:
HIDDTransferDriverDescriptors_INTERRUPTOUT_POLLING
}
};
#ifdef BOARD_USB_UDPHS
/// Other-speed configuration descriptor.
static const HIDDTransferDriverConfigurationDescriptors otherSpeedDescriptors = {
// Configuration descriptor
{
sizeof(USBConfigurationDescriptor),
USBGenericDescriptor_OTHERSPEEDCONFIGURATION,
sizeof(HIDDTransferDriverConfigurationDescriptors),
1, // One interface in this configuration
1, // This is configuration #1
0, // No associated string descriptor
BOARD_USB_BMATTRIBUTES,
USBConfigurationDescriptor_POWER(100)
},
// Interface descriptor
{
sizeof(USBInterfaceDescriptor),
USBGenericDescriptor_INTERFACE,
0, // This is interface #0
0, // This is alternate setting #0
2, // Two endpoints used
HIDInterfaceDescriptor_CLASS,
HIDInterfaceDescriptor_SUBCLASS_NONE,
HIDInterfaceDescriptor_PROTOCOL_NONE,
0 // No associated string descriptor
},
// HID descriptor
{
sizeof(HIDDescriptor),
HIDGenericDescriptor_HID,
HIDDescriptor_HID1_11,
0, // Device is not localized, no country code
1, // One HID-specific descriptor (apart from this one)
HIDGenericDescriptor_REPORT,
HIDDTransferDriverDescriptors_REPORTSIZE
},
// Interrupt IN endpoint descriptor
{
sizeof(USBEndpointDescriptor),
USBGenericDescriptor_ENDPOINT,
USBEndpointDescriptor_ADDRESS(
USBEndpointDescriptor_IN,
HIDDTransferDriverDescriptors_INTERRUPTIN),
USBEndpointDescriptor_INTERRUPT,
MIN(BOARD_USB_ENDPOINTS_MAXPACKETSIZE(
HIDDTransferDriverDescriptors_INTERRUPTIN),
MIN(USBEndpointDescriptor_MAXINTERRUPTSIZE_HS,
HIDDTransferDriver_REPORTSIZE)),
HIDDTransferDriverDescriptors_INTERRUPTIN_POLLING
},
// Interrupt OUT endpoint descriptor
{
sizeof(USBEndpointDescriptor),
USBGenericDescriptor_ENDPOINT,
USBEndpointDescriptor_ADDRESS(
USBEndpointDescriptor_OUT,
HIDDTransferDriverDescriptors_INTERRUPTIN),
USBEndpointDescriptor_INTERRUPT,
MIN(BOARD_USB_ENDPOINTS_MAXPACKETSIZE(
HIDDTransferDriverDescriptors_INTERRUPTOUT),
MIN(USBEndpointDescriptor_MAXINTERRUPTSIZE_HS,
HIDDTransferDriver_REPORTSIZE)),
HIDDTransferDriverDescriptors_INTERRUPTIN_POLLING
}
};
#endif
/*
Variables: String descriptors
languageIdDescriptor - Language ID string descriptor.
manufacturerDescriptor - Manufacturer name.
productDescriptor - Product name.
serialNumberDescriptor - Product serial number.
stringDescriptors - Array of pointers to string descriptors.
*/
static const unsigned char languageIdDescriptor[] = {
USBStringDescriptor_LENGTH(1),
USBGenericDescriptor_STRING,
USBStringDescriptor_ENGLISH_US
};
static const unsigned char manufacturerDescriptor[] = {
USBStringDescriptor_LENGTH(5),
USBGenericDescriptor_STRING,
USBStringDescriptor_UNICODE('A'),
USBStringDescriptor_UNICODE('T'),
USBStringDescriptor_UNICODE('M'),
USBStringDescriptor_UNICODE('E'),
USBStringDescriptor_UNICODE('L')
};
static const unsigned char productDescriptor[] = {
USBStringDescriptor_LENGTH(22),
USBGenericDescriptor_STRING,
USBStringDescriptor_UNICODE('A'),
USBStringDescriptor_UNICODE('T'),
USBStringDescriptor_UNICODE('M'),
USBStringDescriptor_UNICODE('E'),
USBStringDescriptor_UNICODE('L'),
USBStringDescriptor_UNICODE(' '),
USBStringDescriptor_UNICODE('A'),
USBStringDescriptor_UNICODE('T'),
USBStringDescriptor_UNICODE('9'),
USBStringDescriptor_UNICODE('1'),
USBStringDescriptor_UNICODE(' '),
USBStringDescriptor_UNICODE('H'),
USBStringDescriptor_UNICODE('I'),
USBStringDescriptor_UNICODE('D'),
USBStringDescriptor_UNICODE(' '),
USBStringDescriptor_UNICODE('T'),
USBStringDescriptor_UNICODE('R'),
USBStringDescriptor_UNICODE('A'),
USBStringDescriptor_UNICODE('N'),
USBStringDescriptor_UNICODE('S'),
USBStringDescriptor_UNICODE('F'),
USBStringDescriptor_UNICODE('E'),
USBStringDescriptor_UNICODE('R'),
};
static const unsigned char serialNumberDescriptor[] = {
USBStringDescriptor_LENGTH(12),
USBGenericDescriptor_STRING,
USBStringDescriptor_UNICODE('0'),
USBStringDescriptor_UNICODE('1'),
USBStringDescriptor_UNICODE('2'),
USBStringDescriptor_UNICODE('3'),
USBStringDescriptor_UNICODE('4'),
USBStringDescriptor_UNICODE('5'),
USBStringDescriptor_UNICODE('6'),
USBStringDescriptor_UNICODE('7'),
USBStringDescriptor_UNICODE('8'),
USBStringDescriptor_UNICODE('9'),
USBStringDescriptor_UNICODE('A'),
USBStringDescriptor_UNICODE('F')
};
static const unsigned char *stringDescriptors[] = {
languageIdDescriptor,
manufacturerDescriptor,
productDescriptor,
serialNumberDescriptor
};
//------------------------------------------------------------------------------
// Exported variables
//------------------------------------------------------------------------------
/// List of descriptors used by the HID Transfer driver.
USBDDriverDescriptors hiddTransferDriverDescriptors = {
&deviceDescriptor,
(USBConfigurationDescriptor *) &configurationDescriptors,
#ifdef BOARD_USB_UDPHS
&qualifierDescriptor,
(USBConfigurationDescriptor *) &otherSpeedDescriptors,
&deviceDescriptor,
(USBConfigurationDescriptor *) &configurationDescriptors,
&qualifierDescriptor,
(USBConfigurationDescriptor *) &otherSpeedDescriptors,
#else
0, // No full-speed device qualifier descriptor
0, // No full-speed other speed configuration
0, // No high-speed device descriptor
0, // No high-speed configuration descriptor
0, // No high-speed device qualifier descriptor
0, // No high-speed other speed configuration descriptor
#endif
stringDescriptors,
4 // Four string descriptors in list
};
/// Report descriptor used by the driver.
const unsigned char hiddReportDescriptor[] = {
// Global Usage Page
HIDReport_GLOBAL_USAGEPAGE + 2, 0xFF, 0xFF, // Vendor-defined
// Collection: Application
HIDReport_LOCAL_USAGE + 1, 0xFF, // Vendor-defined
HIDReport_COLLECTION + 1, HIDReport_COLLECTION_APPLICATION,
// Input report: Vendor-defined
HIDReport_LOCAL_USAGE + 1, 0xFF, // Vendor-defined usage
HIDReport_GLOBAL_REPORTCOUNT + 1, HIDDTransferDriver_REPORTSIZE,
HIDReport_GLOBAL_REPORTSIZE + 1, 8,
HIDReport_GLOBAL_LOGICALMINIMUM + 1, (unsigned char) -128,
HIDReport_GLOBAL_LOGICALMAXIMUM + 1, (unsigned char) 127,
HIDReport_INPUT + 1, 0, // No Modifiers
// Output report: vendor-defined
HIDReport_LOCAL_USAGE + 1, 0xFF, // Vendor-defined usage
HIDReport_GLOBAL_REPORTCOUNT + 1, HIDDTransferDriver_REPORTSIZE,
HIDReport_GLOBAL_REPORTSIZE + 1, 8,
HIDReport_GLOBAL_LOGICALMINIMUM + 1, (unsigned char) -128,
HIDReport_GLOBAL_LOGICALMAXIMUM + 1, (unsigned char) 127,
HIDReport_OUTPUT + 1, 0, // No Modifiers
HIDReport_ENDCOLLECTION
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -