LUFA Library
Common Class Definitions

Data Structures

struct  USB_HID_Descriptor_HID_t
 HID class-specific HID Descriptor (LUFA naming conventions). More...
 
struct  USB_HID_StdDescriptor_HID_t
 HID class-specific HID Descriptor (USB-IF naming conventions). More...
 
struct  USB_KeyboardReport_Data_t
 Standard HID Boot Protocol Keyboard Report. More...
 
struct  USB_MouseReport_Data_t
 Standard HID Boot Protocol Mouse Report. More...
 

Typedefs

typedef uint8_t USB_Descriptor_HIDReport_Datatype_t
 

Enumerations

enum  HID_ClassRequests_t {
  HID_REQ_GetReport = 0x01,
  HID_REQ_GetIdle = 0x02,
  HID_REQ_GetProtocol = 0x03,
  HID_REQ_SetReport = 0x09,
  HID_REQ_SetIdle = 0x0A,
  HID_REQ_SetProtocol = 0x0B
}
 
enum  HID_Descriptor_ClassSubclassProtocol_t {
  HID_CSCP_HIDClass = 0x03,
  HID_CSCP_NonBootSubclass = 0x00,
  HID_CSCP_BootSubclass = 0x01,
  HID_CSCP_NonBootProtocol = 0x00,
  HID_CSCP_KeyboardBootProtocol = 0x01,
  HID_CSCP_MouseBootProtocol = 0x02
}
 
enum  HID_DescriptorTypes_t {
  HID_DTYPE_HID = 0x21,
  HID_DTYPE_Report = 0x22
}
 
enum  HID_ReportItemTypes_t {
  HID_REPORT_ITEM_In = 0,
  HID_REPORT_ITEM_Out = 1,
  HID_REPORT_ITEM_Feature = 2
}
 

Keyboard Standard Report Modifier Masks

#define HID_KEYBOARD_MODIFIER_LEFTCTRL   (1 << 0)
 
#define HID_KEYBOARD_MODIFIER_LEFTSHIFT   (1 << 1)
 
#define HID_KEYBOARD_MODIFIER_LEFTALT   (1 << 2)
 
#define HID_KEYBOARD_MODIFIER_LEFTGUI   (1 << 3)
 
#define HID_KEYBOARD_MODIFIER_RIGHTCTRL   (1 << 4)
 
#define HID_KEYBOARD_MODIFIER_RIGHTSHIFT   (1 << 5)
 
#define HID_KEYBOARD_MODIFIER_RIGHTALT   (1 << 6)
 
#define HID_KEYBOARD_MODIFIER_RIGHTGUI   (1 << 7)
 

Keyboard Standard Report LED Masks

#define HID_KEYBOARD_LED_NUMLOCK   (1 << 0)
 
#define HID_KEYBOARD_LED_CAPSLOCK   (1 << 1)
 
#define HID_KEYBOARD_LED_SCROLLLOCK   (1 << 2)
 
#define HID_KEYBOARD_LED_COMPOSE   (1 << 3)
 
#define HID_KEYBOARD_LED_KANA   (1 << 4)
 

Keyboard Standard Report Key Scan-codes

#define HID_KEYBOARD_SC_ERROR_ROLLOVER   0x01
 
#define HID_KEYBOARD_SC_POST_FAIL   0x02
 
#define HID_KEYBOARD_SC_ERROR_UNDEFINED   0x03
 
#define HID_KEYBOARD_SC_A   0x04
 
#define HID_KEYBOARD_SC_B   0x05
 
#define HID_KEYBOARD_SC_C   0x06
 
#define HID_KEYBOARD_SC_D   0x07
 
#define HID_KEYBOARD_SC_E   0x08
 
#define HID_KEYBOARD_SC_F   0x09
 
#define HID_KEYBOARD_SC_G   0x0A
 
#define HID_KEYBOARD_SC_H   0x0B
 
#define HID_KEYBOARD_SC_I   0x0C
 
#define HID_KEYBOARD_SC_J   0x0D
 
#define HID_KEYBOARD_SC_K   0x0E
 
#define HID_KEYBOARD_SC_L   0x0F
 
#define HID_KEYBOARD_SC_M   0x10
 
#define HID_KEYBOARD_SC_N   0x11
 
#define HID_KEYBOARD_SC_O   0x12
 
#define HID_KEYBOARD_SC_P   0x13
 
#define HID_KEYBOARD_SC_Q   0x14
 
#define HID_KEYBOARD_SC_R   0x15
 
#define HID_KEYBOARD_SC_S   0x16
 
#define HID_KEYBOARD_SC_T   0x17
 
#define HID_KEYBOARD_SC_U   0x18
 
#define HID_KEYBOARD_SC_V   0x19
 
#define HID_KEYBOARD_SC_W   0x1A
 
#define HID_KEYBOARD_SC_X   0x1B
 
#define HID_KEYBOARD_SC_Y   0x1C
 
#define HID_KEYBOARD_SC_Z   0x1D
 
#define HID_KEYBOARD_SC_1_AND_EXCLAMATION   0x1E
 
#define HID_KEYBOARD_SC_2_AND_AT   0x1F
 
#define HID_KEYBOARD_SC_3_AND_HASHMARK   0x20
 
#define HID_KEYBOARD_SC_4_AND_DOLLAR   0x21
 
#define HID_KEYBOARD_SC_5_AND_PERCENTAGE   0x22
 
#define HID_KEYBOARD_SC_6_AND_CARET   0x23
 
#define HID_KEYBOARD_SC_7_AND_AMPERSAND   0x24
 
#define HID_KEYBOARD_SC_8_AND_ASTERISK   0x25
 
#define HID_KEYBOARD_SC_9_AND_OPENING_PARENTHESIS   0x26
 
#define HID_KEYBOARD_SC_0_AND_CLOSING_PARENTHESIS   0x27
 
#define HID_KEYBOARD_SC_ENTER   0x28
 
#define HID_KEYBOARD_SC_ESCAPE   0x29
 
#define HID_KEYBOARD_SC_BACKSPACE   0x2A
 
#define HID_KEYBOARD_SC_TAB   0x2B
 
#define HID_KEYBOARD_SC_SPACE   0x2C
 
#define HID_KEYBOARD_SC_MINUS_AND_UNDERSCORE   0x2D
 
#define HID_KEYBOARD_SC_EQUAL_AND_PLUS   0x2E
 
#define HID_KEYBOARD_SC_OPENING_BRACKET_AND_OPENING_BRACE   0x2F
 
#define HID_KEYBOARD_SC_CLOSING_BRACKET_AND_CLOSING_BRACE   0x30
 
#define HID_KEYBOARD_SC_BACKSLASH_AND_PIPE   0x31
 
#define HID_KEYBOARD_SC_NON_US_HASHMARK_AND_TILDE   0x32
 
#define HID_KEYBOARD_SC_SEMICOLON_AND_COLON   0x33
 
#define HID_KEYBOARD_SC_APOSTROPHE_AND_QUOTE   0x34
 
#define HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE   0x35
 
#define HID_KEYBOARD_SC_COMMA_AND_LESS_THAN_SIGN   0x36
 
#define HID_KEYBOARD_SC_DOT_AND_GREATER_THAN_SIGN   0x37
 
#define HID_KEYBOARD_SC_SLASH_AND_QUESTION_MARK   0x38
 
#define HID_KEYBOARD_SC_CAPS_LOCK   0x39
 
#define HID_KEYBOARD_SC_F1   0x3A
 
#define HID_KEYBOARD_SC_F2   0x3B
 
#define HID_KEYBOARD_SC_F3   0x3C
 
#define HID_KEYBOARD_SC_F4   0x3D
 
#define HID_KEYBOARD_SC_F5   0x3E
 
#define HID_KEYBOARD_SC_F6   0x3F
 
#define HID_KEYBOARD_SC_F7   0x40
 
#define HID_KEYBOARD_SC_F8   0x41
 
#define HID_KEYBOARD_SC_F9   0x42
 
#define HID_KEYBOARD_SC_F10   0x43
 
#define HID_KEYBOARD_SC_F11   0x44
 
#define HID_KEYBOARD_SC_F12   0x45
 
#define HID_KEYBOARD_SC_PRINT_SCREEN   0x46
 
#define HID_KEYBOARD_SC_SCROLL_LOCK   0x47
 
#define HID_KEYBOARD_SC_PAUSE   0x48
 
#define HID_KEYBOARD_SC_INSERT   0x49
 
#define HID_KEYBOARD_SC_HOME   0x4A
 
#define HID_KEYBOARD_SC_PAGE_UP   0x4B
 
#define HID_KEYBOARD_SC_DELETE   0x4C
 
#define HID_KEYBOARD_SC_END   0x4D
 
#define HID_KEYBOARD_SC_PAGE_DOWN   0x4E
 
#define HID_KEYBOARD_SC_RIGHT_ARROW   0x4F
 
#define HID_KEYBOARD_SC_LEFT_ARROW   0x50
 
#define HID_KEYBOARD_SC_DOWN_ARROW   0x51
 
#define HID_KEYBOARD_SC_UP_ARROW   0x52
 
#define HID_KEYBOARD_SC_NUM_LOCK   0x53
 
#define HID_KEYBOARD_SC_KEYPAD_SLASH   0x54
 
#define HID_KEYBOARD_SC_KEYPAD_ASTERISK   0x55
 
#define HID_KEYBOARD_SC_KEYPAD_MINUS   0x56
 
#define HID_KEYBOARD_SC_KEYPAD_PLUS   0x57
 
#define HID_KEYBOARD_SC_KEYPAD_ENTER   0x58
 
#define HID_KEYBOARD_SC_KEYPAD_1_AND_END   0x59
 
#define HID_KEYBOARD_SC_KEYPAD_2_AND_DOWN_ARROW   0x5A
 
#define HID_KEYBOARD_SC_KEYPAD_3_AND_PAGE_DOWN   0x5B
 
#define HID_KEYBOARD_SC_KEYPAD_4_AND_LEFT_ARROW   0x5C
 
#define HID_KEYBOARD_SC_KEYPAD_5   0x5D
 
#define HID_KEYBOARD_SC_KEYPAD_6_AND_RIGHT_ARROW   0x5E
 
#define HID_KEYBOARD_SC_KEYPAD_7_AND_HOME   0x5F
 
#define HID_KEYBOARD_SC_KEYPAD_8_AND_UP_ARROW   0x60
 
#define HID_KEYBOARD_SC_KEYPAD_9_AND_PAGE_UP   0x61
 
#define HID_KEYBOARD_SC_KEYPAD_0_AND_INSERT   0x62
 
#define HID_KEYBOARD_SC_KEYPAD_DOT_AND_DELETE   0x63
 
#define HID_KEYBOARD_SC_NON_US_BACKSLASH_AND_PIPE   0x64
 
#define HID_KEYBOARD_SC_APPLICATION   0x65
 
#define HID_KEYBOARD_SC_POWER   0x66
 
#define HID_KEYBOARD_SC_KEYPAD_EQUAL_SIGN   0x67
 
#define HID_KEYBOARD_SC_F13   0x68
 
#define HID_KEYBOARD_SC_F14   0x69
 
#define HID_KEYBOARD_SC_F15   0x6A
 
#define HID_KEYBOARD_SC_F16   0x6B
 
#define HID_KEYBOARD_SC_F17   0x6C
 
#define HID_KEYBOARD_SC_F18   0x6D
 
#define HID_KEYBOARD_SC_F19   0x6E
 
#define HID_KEYBOARD_SC_F20   0x6F
 
#define HID_KEYBOARD_SC_F21   0x70
 
#define HID_KEYBOARD_SC_F22   0x71
 
#define HID_KEYBOARD_SC_F23   0x72
 
#define HID_KEYBOARD_SC_F24   0x73
 
#define HID_KEYBOARD_SC_EXECUTE   0x74
 
#define HID_KEYBOARD_SC_HELP   0x75
 
#define HID_KEYBOARD_SC_MENU   0x76
 
#define HID_KEYBOARD_SC_SELECT   0x77
 
#define HID_KEYBOARD_SC_STOP   0x78
 
#define HID_KEYBOARD_SC_AGAIN   0x79
 
#define HID_KEYBOARD_SC_UNDO   0x7A
 
#define HID_KEYBOARD_SC_CUT   0x7B
 
#define HID_KEYBOARD_SC_COPY   0x7C
 
#define HID_KEYBOARD_SC_PASTE   0x7D
 
#define HID_KEYBOARD_SC_FIND   0x7E
 
#define HID_KEYBOARD_SC_MUTE   0x7F
 
#define HID_KEYBOARD_SC_VOLUME_UP   0x80
 
#define HID_KEYBOARD_SC_VOLUME_DOWN   0x81
 
#define HID_KEYBOARD_SC_LOCKING_CAPS_LOCK   0x82
 
#define HID_KEYBOARD_SC_LOCKING_NUM_LOCK   0x83
 
#define HID_KEYBOARD_SC_LOCKING_SCROLL_LOCK   0x84
 
#define HID_KEYBOARD_SC_KEYPAD_COMMA   0x85
 
#define HID_KEYBOARD_SC_KEYPAD_EQUAL_SIGN_AS400   0x86
 
#define HID_KEYBOARD_SC_INTERNATIONAL1   0x87
 
#define HID_KEYBOARD_SC_INTERNATIONAL2   0x88
 
#define HID_KEYBOARD_SC_INTERNATIONAL3   0x89
 
#define HID_KEYBOARD_SC_INTERNATIONAL4   0x8A
 
#define HID_KEYBOARD_SC_INTERNATIONAL5   0x8B
 
#define HID_KEYBOARD_SC_INTERNATIONAL6   0x8C
 
#define HID_KEYBOARD_SC_INTERNATIONAL7   0x8D
 
#define HID_KEYBOARD_SC_INTERNATIONAL8   0x8E
 
#define HID_KEYBOARD_SC_INTERNATIONAL9   0x8F
 
#define HID_KEYBOARD_SC_LANG1   0x90
 
#define HID_KEYBOARD_SC_LANG2   0x91
 
#define HID_KEYBOARD_SC_LANG3   0x92
 
#define HID_KEYBOARD_SC_LANG4   0x93
 
#define HID_KEYBOARD_SC_LANG5   0x94
 
#define HID_KEYBOARD_SC_LANG6   0x95
 
#define HID_KEYBOARD_SC_LANG7   0x96
 
#define HID_KEYBOARD_SC_LANG8   0x97
 
#define HID_KEYBOARD_SC_LANG9   0x98
 
#define HID_KEYBOARD_SC_ALTERNATE_ERASE   0x99
 
#define HID_KEYBOARD_SC_SYSREQ   0x9A
 
#define HID_KEYBOARD_SC_CANCEL   0x9B
 
#define HID_KEYBOARD_SC_CLEAR   0x9C
 
#define HID_KEYBOARD_SC_PRIOR   0x9D
 
#define HID_KEYBOARD_SC_RETURN   0x9E
 
#define HID_KEYBOARD_SC_SEPARATOR   0x9F
 
#define HID_KEYBOARD_SC_OUT   0xA0
 
#define HID_KEYBOARD_SC_OPER   0xA1
 
#define HID_KEYBOARD_SC_CLEAR_AND_AGAIN   0xA2
 
#define HID_KEYBOARD_SC_CRSEL_AND_PROPS   0xA3
 
#define HID_KEYBOARD_SC_EXSEL   0xA4
 
#define HID_KEYBOARD_SC_KEYPAD_00   0xB0
 
#define HID_KEYBOARD_SC_KEYPAD_000   0xB1
 
#define HID_KEYBOARD_SC_THOUSANDS_SEPARATOR   0xB2
 
#define HID_KEYBOARD_SC_DECIMAL_SEPARATOR   0xB3
 
#define HID_KEYBOARD_SC_CURRENCY_UNIT   0xB4
 
#define HID_KEYBOARD_SC_CURRENCY_SUB_UNIT   0xB5
 
#define HID_KEYBOARD_SC_KEYPAD_OPENING_PARENTHESIS   0xB6
 
#define HID_KEYBOARD_SC_KEYPAD_CLOSING_PARENTHESIS   0xB7
 
#define HID_KEYBOARD_SC_KEYPAD_OPENING_BRACE   0xB8
 
#define HID_KEYBOARD_SC_KEYPAD_CLOSING_BRACE   0xB9
 
#define HID_KEYBOARD_SC_KEYPAD_TAB   0xBA
 
#define HID_KEYBOARD_SC_KEYPAD_BACKSPACE   0xBB
 
#define HID_KEYBOARD_SC_KEYPAD_A   0xBC
 
#define HID_KEYBOARD_SC_KEYPAD_B   0xBD
 
#define HID_KEYBOARD_SC_KEYPAD_C   0xBE
 
#define HID_KEYBOARD_SC_KEYPAD_D   0xBF
 
#define HID_KEYBOARD_SC_KEYPAD_E   0xC0
 
#define HID_KEYBOARD_SC_KEYPAD_F   0xC1
 
#define HID_KEYBOARD_SC_KEYPAD_XOR   0xC2
 
#define HID_KEYBOARD_SC_KEYPAD_CARET   0xC3
 
#define HID_KEYBOARD_SC_KEYPAD_PERCENTAGE   0xC4
 
#define HID_KEYBOARD_SC_KEYPAD_LESS_THAN_SIGN   0xC5
 
#define HID_KEYBOARD_SC_KEYPAD_GREATER_THAN_SIGN   0xC6
 
#define HID_KEYBOARD_SC_KEYPAD_AMP   0xC7
 
#define HID_KEYBOARD_SC_KEYPAD_AMP_AMP   0xC8
 
#define HID_KEYBOARD_SC_KEYPAD_PIPE   0xC9
 
#define HID_KEYBOARD_SC_KEYPAD_PIPE_PIPE   0xCA
 
#define HID_KEYBOARD_SC_KEYPAD_COLON   0xCB
 
#define HID_KEYBOARD_SC_KEYPAD_HASHMARK   0xCC
 
#define HID_KEYBOARD_SC_KEYPAD_SPACE   0xCD
 
#define HID_KEYBOARD_SC_KEYPAD_AT   0xCE
 
#define HID_KEYBOARD_SC_KEYPAD_EXCLAMATION_SIGN   0xCF
 
#define HID_KEYBOARD_SC_KEYPAD_MEMORY_STORE   0xD0
 
#define HID_KEYBOARD_SC_KEYPAD_MEMORY_RECALL   0xD1
 
#define HID_KEYBOARD_SC_KEYPAD_MEMORY_CLEAR   0xD2
 
#define HID_KEYBOARD_SC_KEYPAD_MEMORY_ADD   0xD3
 
#define HID_KEYBOARD_SC_KEYPAD_MEMORY_SUBTRACT   0xD4
 
#define HID_KEYBOARD_SC_KEYPAD_MEMORY_MULTIPLY   0xD5
 
#define HID_KEYBOARD_SC_KEYPAD_MEMORY_DIVIDE   0xD6
 
#define HID_KEYBOARD_SC_KEYPAD_PLUS_AND_MINUS   0xD7
 
#define HID_KEYBOARD_SC_KEYPAD_CLEAR   0xD8
 
#define HID_KEYBOARD_SC_KEYPAD_CLEAR_ENTRY   0xD9
 
#define HID_KEYBOARD_SC_KEYPAD_BINARY   0xDA
 
#define HID_KEYBOARD_SC_KEYPAD_OCTAL   0xDB
 
#define HID_KEYBOARD_SC_KEYPAD_DECIMAL   0xDC
 
#define HID_KEYBOARD_SC_KEYPAD_HEXADECIMAL   0xDD
 
#define HID_KEYBOARD_SC_LEFT_CONTROL   0xE0
 
#define HID_KEYBOARD_SC_LEFT_SHIFT   0xE1
 
#define HID_KEYBOARD_SC_LEFT_ALT   0xE2
 
#define HID_KEYBOARD_SC_LEFT_GUI   0xE3
 
#define HID_KEYBOARD_SC_RIGHT_CONTROL   0xE4
 
#define HID_KEYBOARD_SC_RIGHT_SHIFT   0xE5
 
#define HID_KEYBOARD_SC_RIGHT_ALT   0xE6
 
#define HID_KEYBOARD_SC_RIGHT_GUI   0xE7
 
#define HID_KEYBOARD_SC_MEDIA_PLAY   0xE8
 
#define HID_KEYBOARD_SC_MEDIA_STOP   0xE9
 
#define HID_KEYBOARD_SC_MEDIA_PREVIOUS_TRACK   0xEA
 
#define HID_KEYBOARD_SC_MEDIA_NEXT_TRACK   0xEB
 
#define HID_KEYBOARD_SC_MEDIA_EJECT   0xEC
 
#define HID_KEYBOARD_SC_MEDIA_VOLUME_UP   0xED
 
#define HID_KEYBOARD_SC_MEDIA_VOLUME_DOWN   0xEE
 
#define HID_KEYBOARD_SC_MEDIA_MUTE   0xEF
 
#define HID_KEYBOARD_SC_MEDIA_WWW   0xF0
 
#define HID_KEYBOARD_SC_MEDIA_BACKWARD   0xF1
 
#define HID_KEYBOARD_SC_MEDIA_FORWARD   0xF2
 
#define HID_KEYBOARD_SC_MEDIA_CANCEL   0xF3
 
#define HID_KEYBOARD_SC_MEDIA_SEARCH   0xF4
 
#define HID_KEYBOARD_SC_MEDIA_SLEEP   0xF8
 
#define HID_KEYBOARD_SC_MEDIA_LOCK   0xF9
 
#define HID_KEYBOARD_SC_MEDIA_RELOAD   0xFA
 
#define HID_KEYBOARD_SC_MEDIA_CALCULATOR   0xFB
 

Common HID Device Report Descriptors

#define HID_DESCRIPTOR_JOYSTICK(MinAxisVal, MaxAxisVal, MinPhysicalVal, MaxPhysicalVal, Buttons)
 
#define HID_DESCRIPTOR_KEYBOARD(MaxKeys)
 
#define HID_DESCRIPTOR_MOUSE(MinAxisVal, MaxAxisVal, MinPhysicalVal, MaxPhysicalVal, Buttons, AbsoluteCoords)
 
#define HID_DESCRIPTOR_VENDOR(VendorPageNum, CollectionUsage, DataINUsage, DataOUTUsage, NumBytes)
 

Detailed Description

Module Description

Constants, Types and Enum definitions that are common to both Device and Host modes for the USB HID Class.

Macro Definition Documentation

◆ HID_DESCRIPTOR_JOYSTICK

#define HID_DESCRIPTOR_JOYSTICK (   MinAxisVal,
  MaxAxisVal,
  MinPhysicalVal,
  MaxPhysicalVal,
  Buttons 
)

A list of HID report item array elements that describe a typical HID USB Joystick. The resulting report descriptor is structured according to the following layout:

struct
{
intA_t X; // Signed X axis value
intA_t Y; // Signed Y axis value
intA_t Z; // Signed Z axis value
uintB_t Buttons; // Pressed buttons bitmask
} Joystick_Report;

Where uintA_t is a type large enough to hold the ranges of the signed MinAxisVal and MaxAxisVal values, and intB_t is a type large enough to hold one bit per button.

Parameters
[in]MinAxisValMinimum logical axis value (16-bit).
[in]MaxAxisValMaximum logical axis value (16-bit).
[in]MinPhysicalValMinimum physical axis value, for movement resolution calculations (16-bit).
[in]MaxPhysicalValMaximum physical axis value, for movement resolution calculations (16-bit).
[in]ButtonsTotal number of buttons in the device (8-bit).

◆ HID_DESCRIPTOR_KEYBOARD

#define HID_DESCRIPTOR_KEYBOARD (   MaxKeys)

A list of HID report item array elements that describe a typical HID USB keyboard. The resulting report descriptor is compatible with USB_KeyboardReport_Data_t when MaxKeys is equal to 6. For other values, the report will be structured according to the following layout:

struct
{
uint8_t Modifier; // Keyboard modifier byte indicating pressed modifier keys (\c HID_KEYBOARD_MODIFER_* masks)
uint8_t Reserved; // Reserved for OEM use, always set to 0.
uint8_t KeyCode[MaxKeys]; // Length determined by the number of keys that can be reported
} Keyboard_Report;
Parameters
[in]MaxKeysNumber of simultaneous keys that can be reported at the one time (8-bit).

◆ HID_DESCRIPTOR_MOUSE

#define HID_DESCRIPTOR_MOUSE (   MinAxisVal,
  MaxAxisVal,
  MinPhysicalVal,
  MaxPhysicalVal,
  Buttons,
  AbsoluteCoords 
)

A list of HID report item array elements that describe a typical HID USB mouse. The resulting report descriptor is compatible with USB_MouseReport_Data_t if the MinAxisVal and MaxAxisVal values fit within a int8_t range and the number of Buttons is less than 8. For other values, the report is structured according to the following layout:

struct
{
uintA_t Buttons; // Pressed buttons bitmask
intB_t X; // X axis value
intB_t Y; // Y axis value
} Mouse_Report;

Where intA_t is a type large enough to hold one bit per button, and intB_t is a type large enough to hold the ranges of the signed MinAxisVal and MaxAxisVal values.

Parameters
[in]MinAxisValMinimum X/Y logical axis value (16-bit).
[in]MaxAxisValMaximum X/Y logical axis value (16-bit).
[in]MinPhysicalValMinimum X/Y physical axis value, for movement resolution calculations (16-bit).
[in]MaxPhysicalValMaximum X/Y physical axis value, for movement resolution calculations (16-bit).
[in]ButtonsTotal number of buttons in the device (8-bit).
[in]AbsoluteCoordsBoolean true to use absolute X/Y coordinates (e.g. touchscreen).

◆ HID_DESCRIPTOR_VENDOR

#define HID_DESCRIPTOR_VENDOR (   VendorPageNum,
  CollectionUsage,
  DataINUsage,
  DataOUTUsage,
  NumBytes 
)

A list of HID report item array elements that describe a typical Vendor Defined byte array HID report descriptor, used for transporting arbitrary data between the USB host and device via HID reports. The resulting report should be a uint8_t byte array of the specified length in both Device to Host (IN) and Host to Device (OUT) directions.

Parameters
[in]VendorPageNumVendor Defined HID Usage Page index, ranging from 0x00 to 0xFF.
[in]CollectionUsageVendor Usage for the encompassing report IN and OUT collection, ranging from 0x00 to 0xFF.
[in]DataINUsageVendor Usage for the IN report data, ranging from 0x00 to 0xFF.
[in]DataOUTUsageVendor Usage for the OUT report data, ranging from 0x00 to 0xFF.
[in]NumBytesLength of the data IN and OUT reports.

◆ HID_KEYBOARD_LED_CAPSLOCK

#define HID_KEYBOARD_LED_CAPSLOCK   (1 << 1)

Constant for a keyboard output report LED byte, indicating that the host's CAPS LOCK mode is currently set.

◆ HID_KEYBOARD_LED_COMPOSE

#define HID_KEYBOARD_LED_COMPOSE   (1 << 3)

Constant for a keyboard output report LED byte, indicating that the host's COMPOSE mode is currently set.

◆ HID_KEYBOARD_LED_KANA

#define HID_KEYBOARD_LED_KANA   (1 << 4)

Constant for a keyboard output report LED byte, indicating that the host's KANA mode is currently set.

◆ HID_KEYBOARD_LED_NUMLOCK

#define HID_KEYBOARD_LED_NUMLOCK   (1 << 0)

Constant for a keyboard output report LED byte, indicating that the host's NUM LOCK mode is currently set.

◆ HID_KEYBOARD_LED_SCROLLLOCK

#define HID_KEYBOARD_LED_SCROLLLOCK   (1 << 2)

Constant for a keyboard output report LED byte, indicating that the host's SCROLL LOCK mode is currently set.

◆ HID_KEYBOARD_MODIFIER_LEFTALT

#define HID_KEYBOARD_MODIFIER_LEFTALT   (1 << 2)

Constant for a keyboard report modifier byte, indicating that the keyboard's left alt key is currently pressed.

◆ HID_KEYBOARD_MODIFIER_LEFTCTRL

#define HID_KEYBOARD_MODIFIER_LEFTCTRL   (1 << 0)

Constant for a keyboard report modifier byte, indicating that the keyboard's left control key is currently pressed.

◆ HID_KEYBOARD_MODIFIER_LEFTGUI

#define HID_KEYBOARD_MODIFIER_LEFTGUI   (1 << 3)

Constant for a keyboard report modifier byte, indicating that the keyboard's left GUI key is currently pressed.

◆ HID_KEYBOARD_MODIFIER_LEFTSHIFT

#define HID_KEYBOARD_MODIFIER_LEFTSHIFT   (1 << 1)

Constant for a keyboard report modifier byte, indicating that the keyboard's left shift key is currently pressed.

◆ HID_KEYBOARD_MODIFIER_RIGHTALT

#define HID_KEYBOARD_MODIFIER_RIGHTALT   (1 << 6)

Constant for a keyboard report modifier byte, indicating that the keyboard's right alt key is currently pressed.

◆ HID_KEYBOARD_MODIFIER_RIGHTCTRL

#define HID_KEYBOARD_MODIFIER_RIGHTCTRL   (1 << 4)

Constant for a keyboard report modifier byte, indicating that the keyboard's right control key is currently pressed.

◆ HID_KEYBOARD_MODIFIER_RIGHTGUI

#define HID_KEYBOARD_MODIFIER_RIGHTGUI   (1 << 7)

Constant for a keyboard report modifier byte, indicating that the keyboard's right GUI key is currently pressed.

◆ HID_KEYBOARD_MODIFIER_RIGHTSHIFT

#define HID_KEYBOARD_MODIFIER_RIGHTSHIFT   (1 << 5)

Constant for a keyboard report modifier byte, indicating that the keyboard's right shift key is currently pressed.

◆ HID_KEYBOARD_SC_0_AND_CLOSING_PARENTHESIS

#define HID_KEYBOARD_SC_0_AND_CLOSING_PARENTHESIS   0x27

◆ HID_KEYBOARD_SC_1_AND_EXCLAMATION

#define HID_KEYBOARD_SC_1_AND_EXCLAMATION   0x1E

◆ HID_KEYBOARD_SC_2_AND_AT

#define HID_KEYBOARD_SC_2_AND_AT   0x1F

◆ HID_KEYBOARD_SC_3_AND_HASHMARK

#define HID_KEYBOARD_SC_3_AND_HASHMARK   0x20

◆ HID_KEYBOARD_SC_4_AND_DOLLAR

#define HID_KEYBOARD_SC_4_AND_DOLLAR   0x21

◆ HID_KEYBOARD_SC_5_AND_PERCENTAGE

#define HID_KEYBOARD_SC_5_AND_PERCENTAGE   0x22

◆ HID_KEYBOARD_SC_6_AND_CARET

#define HID_KEYBOARD_SC_6_AND_CARET   0x23

◆ HID_KEYBOARD_SC_7_AND_AMPERSAND

#define HID_KEYBOARD_SC_7_AND_AMPERSAND   0x24

◆ HID_KEYBOARD_SC_8_AND_ASTERISK

#define HID_KEYBOARD_SC_8_AND_ASTERISK   0x25

◆ HID_KEYBOARD_SC_9_AND_OPENING_PARENTHESIS

#define HID_KEYBOARD_SC_9_AND_OPENING_PARENTHESIS   0x26

◆ HID_KEYBOARD_SC_A

#define HID_KEYBOARD_SC_A   0x04

◆ HID_KEYBOARD_SC_AGAIN

#define HID_KEYBOARD_SC_AGAIN   0x79

◆ HID_KEYBOARD_SC_ALTERNATE_ERASE

#define HID_KEYBOARD_SC_ALTERNATE_ERASE   0x99

◆ HID_KEYBOARD_SC_APOSTROPHE_AND_QUOTE

#define HID_KEYBOARD_SC_APOSTROPHE_AND_QUOTE   0x34

◆ HID_KEYBOARD_SC_APPLICATION

#define HID_KEYBOARD_SC_APPLICATION   0x65

◆ HID_KEYBOARD_SC_B

#define HID_KEYBOARD_SC_B   0x05

◆ HID_KEYBOARD_SC_BACKSLASH_AND_PIPE

#define HID_KEYBOARD_SC_BACKSLASH_AND_PIPE   0x31

◆ HID_KEYBOARD_SC_BACKSPACE

#define HID_KEYBOARD_SC_BACKSPACE   0x2A

◆ HID_KEYBOARD_SC_C

#define HID_KEYBOARD_SC_C   0x06

◆ HID_KEYBOARD_SC_CANCEL

#define HID_KEYBOARD_SC_CANCEL   0x9B

◆ HID_KEYBOARD_SC_CAPS_LOCK

#define HID_KEYBOARD_SC_CAPS_LOCK   0x39

◆ HID_KEYBOARD_SC_CLEAR

#define HID_KEYBOARD_SC_CLEAR   0x9C

◆ HID_KEYBOARD_SC_CLEAR_AND_AGAIN

#define HID_KEYBOARD_SC_CLEAR_AND_AGAIN   0xA2

◆ HID_KEYBOARD_SC_CLOSING_BRACKET_AND_CLOSING_BRACE

#define HID_KEYBOARD_SC_CLOSING_BRACKET_AND_CLOSING_BRACE   0x30

◆ HID_KEYBOARD_SC_COMMA_AND_LESS_THAN_SIGN

#define HID_KEYBOARD_SC_COMMA_AND_LESS_THAN_SIGN   0x36

◆ HID_KEYBOARD_SC_COPY

#define HID_KEYBOARD_SC_COPY   0x7C

◆ HID_KEYBOARD_SC_CRSEL_AND_PROPS

#define HID_KEYBOARD_SC_CRSEL_AND_PROPS   0xA3

◆ HID_KEYBOARD_SC_CURRENCY_SUB_UNIT

#define HID_KEYBOARD_SC_CURRENCY_SUB_UNIT   0xB5

◆ HID_KEYBOARD_SC_CURRENCY_UNIT

#define HID_KEYBOARD_SC_CURRENCY_UNIT   0xB4

◆ HID_KEYBOARD_SC_CUT

#define HID_KEYBOARD_SC_CUT   0x7B

◆ HID_KEYBOARD_SC_D

#define HID_KEYBOARD_SC_D   0x07

◆ HID_KEYBOARD_SC_DECIMAL_SEPARATOR

#define HID_KEYBOARD_SC_DECIMAL_SEPARATOR   0xB3

◆ HID_KEYBOARD_SC_DELETE

#define HID_KEYBOARD_SC_DELETE   0x4C

◆ HID_KEYBOARD_SC_DOT_AND_GREATER_THAN_SIGN

#define HID_KEYBOARD_SC_DOT_AND_GREATER_THAN_SIGN   0x37

◆ HID_KEYBOARD_SC_DOWN_ARROW

#define HID_KEYBOARD_SC_DOWN_ARROW   0x51

◆ HID_KEYBOARD_SC_E

#define HID_KEYBOARD_SC_E   0x08

◆ HID_KEYBOARD_SC_END

#define HID_KEYBOARD_SC_END   0x4D

◆ HID_KEYBOARD_SC_ENTER

#define HID_KEYBOARD_SC_ENTER   0x28

◆ HID_KEYBOARD_SC_EQUAL_AND_PLUS

#define HID_KEYBOARD_SC_EQUAL_AND_PLUS   0x2E

◆ HID_KEYBOARD_SC_ERROR_ROLLOVER

#define HID_KEYBOARD_SC_ERROR_ROLLOVER   0x01

◆ HID_KEYBOARD_SC_ERROR_UNDEFINED

#define HID_KEYBOARD_SC_ERROR_UNDEFINED   0x03

◆ HID_KEYBOARD_SC_ESCAPE

#define HID_KEYBOARD_SC_ESCAPE   0x29

◆ HID_KEYBOARD_SC_EXECUTE

#define HID_KEYBOARD_SC_EXECUTE   0x74

◆ HID_KEYBOARD_SC_EXSEL

#define HID_KEYBOARD_SC_EXSEL   0xA4

◆ HID_KEYBOARD_SC_F

#define HID_KEYBOARD_SC_F   0x09

◆ HID_KEYBOARD_SC_F1

#define HID_KEYBOARD_SC_F1   0x3A

◆ HID_KEYBOARD_SC_F10

#define HID_KEYBOARD_SC_F10   0x43

◆ HID_KEYBOARD_SC_F11

#define HID_KEYBOARD_SC_F11   0x44

◆ HID_KEYBOARD_SC_F12

#define HID_KEYBOARD_SC_F12   0x45

◆ HID_KEYBOARD_SC_F13

#define HID_KEYBOARD_SC_F13   0x68

◆ HID_KEYBOARD_SC_F14

#define HID_KEYBOARD_SC_F14   0x69

◆ HID_KEYBOARD_SC_F15

#define HID_KEYBOARD_SC_F15   0x6A

◆ HID_KEYBOARD_SC_F16

#define HID_KEYBOARD_SC_F16   0x6B

◆ HID_KEYBOARD_SC_F17

#define HID_KEYBOARD_SC_F17   0x6C

◆ HID_KEYBOARD_SC_F18

#define HID_KEYBOARD_SC_F18   0x6D

◆ HID_KEYBOARD_SC_F19

#define HID_KEYBOARD_SC_F19   0x6E

◆ HID_KEYBOARD_SC_F2

#define HID_KEYBOARD_SC_F2   0x3B

◆ HID_KEYBOARD_SC_F20

#define HID_KEYBOARD_SC_F20   0x6F

◆ HID_KEYBOARD_SC_F21

#define HID_KEYBOARD_SC_F21   0x70

◆ HID_KEYBOARD_SC_F22

#define HID_KEYBOARD_SC_F22   0x71

◆ HID_KEYBOARD_SC_F23

#define HID_KEYBOARD_SC_F23   0x72

◆ HID_KEYBOARD_SC_F24

#define HID_KEYBOARD_SC_F24   0x73

◆ HID_KEYBOARD_SC_F3

#define HID_KEYBOARD_SC_F3   0x3C

◆ HID_KEYBOARD_SC_F4

#define HID_KEYBOARD_SC_F4   0x3D

◆ HID_KEYBOARD_SC_F5

#define HID_KEYBOARD_SC_F5   0x3E

◆ HID_KEYBOARD_SC_F6

#define HID_KEYBOARD_SC_F6   0x3F

◆ HID_KEYBOARD_SC_F7

#define HID_KEYBOARD_SC_F7   0x40

◆ HID_KEYBOARD_SC_F8

#define HID_KEYBOARD_SC_F8   0x41

◆ HID_KEYBOARD_SC_F9

#define HID_KEYBOARD_SC_F9   0x42

◆ HID_KEYBOARD_SC_FIND

#define HID_KEYBOARD_SC_FIND   0x7E

◆ HID_KEYBOARD_SC_G

#define HID_KEYBOARD_SC_G   0x0A

◆ HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE

#define HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE   0x35

◆ HID_KEYBOARD_SC_H

#define HID_KEYBOARD_SC_H   0x0B

◆ HID_KEYBOARD_SC_HELP

#define HID_KEYBOARD_SC_HELP   0x75

◆ HID_KEYBOARD_SC_HOME

#define HID_KEYBOARD_SC_HOME   0x4A

◆ HID_KEYBOARD_SC_I

#define HID_KEYBOARD_SC_I   0x0C

◆ HID_KEYBOARD_SC_INSERT

#define HID_KEYBOARD_SC_INSERT   0x49

◆ HID_KEYBOARD_SC_INTERNATIONAL1

#define HID_KEYBOARD_SC_INTERNATIONAL1   0x87

◆ HID_KEYBOARD_SC_INTERNATIONAL2

#define HID_KEYBOARD_SC_INTERNATIONAL2   0x88

◆ HID_KEYBOARD_SC_INTERNATIONAL3

#define HID_KEYBOARD_SC_INTERNATIONAL3   0x89

◆ HID_KEYBOARD_SC_INTERNATIONAL4

#define HID_KEYBOARD_SC_INTERNATIONAL4   0x8A

◆ HID_KEYBOARD_SC_INTERNATIONAL5

#define HID_KEYBOARD_SC_INTERNATIONAL5   0x8B

◆ HID_KEYBOARD_SC_INTERNATIONAL6

#define HID_KEYBOARD_SC_INTERNATIONAL6   0x8C

◆ HID_KEYBOARD_SC_INTERNATIONAL7

#define HID_KEYBOARD_SC_INTERNATIONAL7   0x8D

◆ HID_KEYBOARD_SC_INTERNATIONAL8

#define HID_KEYBOARD_SC_INTERNATIONAL8   0x8E

◆ HID_KEYBOARD_SC_INTERNATIONAL9

#define HID_KEYBOARD_SC_INTERNATIONAL9   0x8F

◆ HID_KEYBOARD_SC_J

#define HID_KEYBOARD_SC_J   0x0D

◆ HID_KEYBOARD_SC_K

#define HID_KEYBOARD_SC_K   0x0E

◆ HID_KEYBOARD_SC_KEYPAD_00

#define HID_KEYBOARD_SC_KEYPAD_00   0xB0

◆ HID_KEYBOARD_SC_KEYPAD_000

#define HID_KEYBOARD_SC_KEYPAD_000   0xB1

◆ HID_KEYBOARD_SC_KEYPAD_0_AND_INSERT

#define HID_KEYBOARD_SC_KEYPAD_0_AND_INSERT   0x62

◆ HID_KEYBOARD_SC_KEYPAD_1_AND_END

#define HID_KEYBOARD_SC_KEYPAD_1_AND_END   0x59

◆ HID_KEYBOARD_SC_KEYPAD_2_AND_DOWN_ARROW

#define HID_KEYBOARD_SC_KEYPAD_2_AND_DOWN_ARROW   0x5A

◆ HID_KEYBOARD_SC_KEYPAD_3_AND_PAGE_DOWN

#define HID_KEYBOARD_SC_KEYPAD_3_AND_PAGE_DOWN   0x5B

◆ HID_KEYBOARD_SC_KEYPAD_4_AND_LEFT_ARROW

#define HID_KEYBOARD_SC_KEYPAD_4_AND_LEFT_ARROW   0x5C

◆ HID_KEYBOARD_SC_KEYPAD_5

#define HID_KEYBOARD_SC_KEYPAD_5   0x5D

◆ HID_KEYBOARD_SC_KEYPAD_6_AND_RIGHT_ARROW

#define HID_KEYBOARD_SC_KEYPAD_6_AND_RIGHT_ARROW   0x5E

◆ HID_KEYBOARD_SC_KEYPAD_7_AND_HOME

#define HID_KEYBOARD_SC_KEYPAD_7_AND_HOME   0x5F

◆ HID_KEYBOARD_SC_KEYPAD_8_AND_UP_ARROW

#define HID_KEYBOARD_SC_KEYPAD_8_AND_UP_ARROW   0x60

◆ HID_KEYBOARD_SC_KEYPAD_9_AND_PAGE_UP

#define HID_KEYBOARD_SC_KEYPAD_9_AND_PAGE_UP   0x61

◆ HID_KEYBOARD_SC_KEYPAD_A

#define HID_KEYBOARD_SC_KEYPAD_A   0xBC

◆ HID_KEYBOARD_SC_KEYPAD_AMP

#define HID_KEYBOARD_SC_KEYPAD_AMP   0xC7

◆ HID_KEYBOARD_SC_KEYPAD_AMP_AMP

#define HID_KEYBOARD_SC_KEYPAD_AMP_AMP   0xC8

◆ HID_KEYBOARD_SC_KEYPAD_ASTERISK

#define HID_KEYBOARD_SC_KEYPAD_ASTERISK   0x55

◆ HID_KEYBOARD_SC_KEYPAD_AT

#define HID_KEYBOARD_SC_KEYPAD_AT   0xCE

◆ HID_KEYBOARD_SC_KEYPAD_B

#define HID_KEYBOARD_SC_KEYPAD_B   0xBD

◆ HID_KEYBOARD_SC_KEYPAD_BACKSPACE

#define HID_KEYBOARD_SC_KEYPAD_BACKSPACE   0xBB

◆ HID_KEYBOARD_SC_KEYPAD_BINARY

#define HID_KEYBOARD_SC_KEYPAD_BINARY   0xDA

◆ HID_KEYBOARD_SC_KEYPAD_C

#define HID_KEYBOARD_SC_KEYPAD_C   0xBE

◆ HID_KEYBOARD_SC_KEYPAD_CARET

#define HID_KEYBOARD_SC_KEYPAD_CARET   0xC3

◆ HID_KEYBOARD_SC_KEYPAD_CLEAR

#define HID_KEYBOARD_SC_KEYPAD_CLEAR   0xD8

◆ HID_KEYBOARD_SC_KEYPAD_CLEAR_ENTRY

#define HID_KEYBOARD_SC_KEYPAD_CLEAR_ENTRY   0xD9

◆ HID_KEYBOARD_SC_KEYPAD_CLOSING_BRACE

#define HID_KEYBOARD_SC_KEYPAD_CLOSING_BRACE   0xB9

◆ HID_KEYBOARD_SC_KEYPAD_CLOSING_PARENTHESIS

#define HID_KEYBOARD_SC_KEYPAD_CLOSING_PARENTHESIS   0xB7

◆ HID_KEYBOARD_SC_KEYPAD_COLON

#define HID_KEYBOARD_SC_KEYPAD_COLON   0xCB

◆ HID_KEYBOARD_SC_KEYPAD_COMMA

#define HID_KEYBOARD_SC_KEYPAD_COMMA   0x85

◆ HID_KEYBOARD_SC_KEYPAD_D

#define HID_KEYBOARD_SC_KEYPAD_D   0xBF

◆ HID_KEYBOARD_SC_KEYPAD_DECIMAL

#define HID_KEYBOARD_SC_KEYPAD_DECIMAL   0xDC

◆ HID_KEYBOARD_SC_KEYPAD_DOT_AND_DELETE

#define HID_KEYBOARD_SC_KEYPAD_DOT_AND_DELETE   0x63

◆ HID_KEYBOARD_SC_KEYPAD_E

#define HID_KEYBOARD_SC_KEYPAD_E   0xC0

◆ HID_KEYBOARD_SC_KEYPAD_ENTER

#define HID_KEYBOARD_SC_KEYPAD_ENTER   0x58

◆ HID_KEYBOARD_SC_KEYPAD_EQUAL_SIGN

#define HID_KEYBOARD_SC_KEYPAD_EQUAL_SIGN   0x67

◆ HID_KEYBOARD_SC_KEYPAD_EQUAL_SIGN_AS400

#define HID_KEYBOARD_SC_KEYPAD_EQUAL_SIGN_AS400   0x86

◆ HID_KEYBOARD_SC_KEYPAD_EXCLAMATION_SIGN

#define HID_KEYBOARD_SC_KEYPAD_EXCLAMATION_SIGN   0xCF

◆ HID_KEYBOARD_SC_KEYPAD_F

#define HID_KEYBOARD_SC_KEYPAD_F   0xC1

◆ HID_KEYBOARD_SC_KEYPAD_GREATER_THAN_SIGN

#define HID_KEYBOARD_SC_KEYPAD_GREATER_THAN_SIGN   0xC6

◆ HID_KEYBOARD_SC_KEYPAD_HASHMARK

#define HID_KEYBOARD_SC_KEYPAD_HASHMARK   0xCC

◆ HID_KEYBOARD_SC_KEYPAD_HEXADECIMAL

#define HID_KEYBOARD_SC_KEYPAD_HEXADECIMAL   0xDD

◆ HID_KEYBOARD_SC_KEYPAD_LESS_THAN_SIGN

#define HID_KEYBOARD_SC_KEYPAD_LESS_THAN_SIGN   0xC5

◆ HID_KEYBOARD_SC_KEYPAD_MEMORY_ADD

#define HID_KEYBOARD_SC_KEYPAD_MEMORY_ADD   0xD3

◆ HID_KEYBOARD_SC_KEYPAD_MEMORY_CLEAR

#define HID_KEYBOARD_SC_KEYPAD_MEMORY_CLEAR   0xD2

◆ HID_KEYBOARD_SC_KEYPAD_MEMORY_DIVIDE

#define HID_KEYBOARD_SC_KEYPAD_MEMORY_DIVIDE   0xD6

◆ HID_KEYBOARD_SC_KEYPAD_MEMORY_MULTIPLY

#define HID_KEYBOARD_SC_KEYPAD_MEMORY_MULTIPLY   0xD5

◆ HID_KEYBOARD_SC_KEYPAD_MEMORY_RECALL

#define HID_KEYBOARD_SC_KEYPAD_MEMORY_RECALL   0xD1

◆ HID_KEYBOARD_SC_KEYPAD_MEMORY_STORE

#define HID_KEYBOARD_SC_KEYPAD_MEMORY_STORE   0xD0

◆ HID_KEYBOARD_SC_KEYPAD_MEMORY_SUBTRACT

#define HID_KEYBOARD_SC_KEYPAD_MEMORY_SUBTRACT   0xD4

◆ HID_KEYBOARD_SC_KEYPAD_MINUS

#define HID_KEYBOARD_SC_KEYPAD_MINUS   0x56

◆ HID_KEYBOARD_SC_KEYPAD_OCTAL

#define HID_KEYBOARD_SC_KEYPAD_OCTAL   0xDB

◆ HID_KEYBOARD_SC_KEYPAD_OPENING_BRACE

#define HID_KEYBOARD_SC_KEYPAD_OPENING_BRACE   0xB8

◆ HID_KEYBOARD_SC_KEYPAD_OPENING_PARENTHESIS

#define HID_KEYBOARD_SC_KEYPAD_OPENING_PARENTHESIS   0xB6

◆ HID_KEYBOARD_SC_KEYPAD_PERCENTAGE

#define HID_KEYBOARD_SC_KEYPAD_PERCENTAGE   0xC4

◆ HID_KEYBOARD_SC_KEYPAD_PIPE

#define HID_KEYBOARD_SC_KEYPAD_PIPE   0xC9

◆ HID_KEYBOARD_SC_KEYPAD_PIPE_PIPE

#define HID_KEYBOARD_SC_KEYPAD_PIPE_PIPE   0xCA

◆ HID_KEYBOARD_SC_KEYPAD_PLUS

#define HID_KEYBOARD_SC_KEYPAD_PLUS   0x57

◆ HID_KEYBOARD_SC_KEYPAD_PLUS_AND_MINUS

#define HID_KEYBOARD_SC_KEYPAD_PLUS_AND_MINUS   0xD7

◆ HID_KEYBOARD_SC_KEYPAD_SLASH

#define HID_KEYBOARD_SC_KEYPAD_SLASH   0x54

◆ HID_KEYBOARD_SC_KEYPAD_SPACE

#define HID_KEYBOARD_SC_KEYPAD_SPACE   0xCD

◆ HID_KEYBOARD_SC_KEYPAD_TAB

#define HID_KEYBOARD_SC_KEYPAD_TAB   0xBA

◆ HID_KEYBOARD_SC_KEYPAD_XOR

#define HID_KEYBOARD_SC_KEYPAD_XOR   0xC2

◆ HID_KEYBOARD_SC_L

#define HID_KEYBOARD_SC_L   0x0F

◆ HID_KEYBOARD_SC_LANG1

#define HID_KEYBOARD_SC_LANG1   0x90

◆ HID_KEYBOARD_SC_LANG2

#define HID_KEYBOARD_SC_LANG2   0x91

◆ HID_KEYBOARD_SC_LANG3

#define HID_KEYBOARD_SC_LANG3   0x92

◆ HID_KEYBOARD_SC_LANG4

#define HID_KEYBOARD_SC_LANG4   0x93

◆ HID_KEYBOARD_SC_LANG5

#define HID_KEYBOARD_SC_LANG5   0x94

◆ HID_KEYBOARD_SC_LANG6

#define HID_KEYBOARD_SC_LANG6   0x95

◆ HID_KEYBOARD_SC_LANG7

#define HID_KEYBOARD_SC_LANG7   0x96

◆ HID_KEYBOARD_SC_LANG8

#define HID_KEYBOARD_SC_LANG8   0x97

◆ HID_KEYBOARD_SC_LANG9

#define HID_KEYBOARD_SC_LANG9   0x98

◆ HID_KEYBOARD_SC_LEFT_ALT

#define HID_KEYBOARD_SC_LEFT_ALT   0xE2

◆ HID_KEYBOARD_SC_LEFT_ARROW

#define HID_KEYBOARD_SC_LEFT_ARROW   0x50

◆ HID_KEYBOARD_SC_LEFT_CONTROL

#define HID_KEYBOARD_SC_LEFT_CONTROL   0xE0

◆ HID_KEYBOARD_SC_LEFT_GUI

#define HID_KEYBOARD_SC_LEFT_GUI   0xE3

◆ HID_KEYBOARD_SC_LEFT_SHIFT

#define HID_KEYBOARD_SC_LEFT_SHIFT   0xE1

◆ HID_KEYBOARD_SC_LOCKING_CAPS_LOCK

#define HID_KEYBOARD_SC_LOCKING_CAPS_LOCK   0x82

◆ HID_KEYBOARD_SC_LOCKING_NUM_LOCK

#define HID_KEYBOARD_SC_LOCKING_NUM_LOCK   0x83

◆ HID_KEYBOARD_SC_LOCKING_SCROLL_LOCK

#define HID_KEYBOARD_SC_LOCKING_SCROLL_LOCK   0x84

◆ HID_KEYBOARD_SC_M

#define HID_KEYBOARD_SC_M   0x10

◆ HID_KEYBOARD_SC_MEDIA_BACKWARD

#define HID_KEYBOARD_SC_MEDIA_BACKWARD   0xF1

◆ HID_KEYBOARD_SC_MEDIA_CALCULATOR

#define HID_KEYBOARD_SC_MEDIA_CALCULATOR   0xFB

◆ HID_KEYBOARD_SC_MEDIA_CANCEL

#define HID_KEYBOARD_SC_MEDIA_CANCEL   0xF3

◆ HID_KEYBOARD_SC_MEDIA_EJECT

#define HID_KEYBOARD_SC_MEDIA_EJECT   0xEC

◆ HID_KEYBOARD_SC_MEDIA_FORWARD

#define HID_KEYBOARD_SC_MEDIA_FORWARD   0xF2

◆ HID_KEYBOARD_SC_MEDIA_LOCK

#define HID_KEYBOARD_SC_MEDIA_LOCK   0xF9

◆ HID_KEYBOARD_SC_MEDIA_MUTE

#define HID_KEYBOARD_SC_MEDIA_MUTE   0xEF

◆ HID_KEYBOARD_SC_MEDIA_NEXT_TRACK

#define HID_KEYBOARD_SC_MEDIA_NEXT_TRACK   0xEB

◆ HID_KEYBOARD_SC_MEDIA_PLAY

#define HID_KEYBOARD_SC_MEDIA_PLAY   0xE8

◆ HID_KEYBOARD_SC_MEDIA_PREVIOUS_TRACK

#define HID_KEYBOARD_SC_MEDIA_PREVIOUS_TRACK   0xEA

◆ HID_KEYBOARD_SC_MEDIA_RELOAD

#define HID_KEYBOARD_SC_MEDIA_RELOAD   0xFA

◆ HID_KEYBOARD_SC_MEDIA_SEARCH

#define HID_KEYBOARD_SC_MEDIA_SEARCH   0xF4

◆ HID_KEYBOARD_SC_MEDIA_SLEEP

#define HID_KEYBOARD_SC_MEDIA_SLEEP   0xF8

◆ HID_KEYBOARD_SC_MEDIA_STOP

#define HID_KEYBOARD_SC_MEDIA_STOP   0xE9

◆ HID_KEYBOARD_SC_MEDIA_VOLUME_DOWN

#define HID_KEYBOARD_SC_MEDIA_VOLUME_DOWN   0xEE

◆ HID_KEYBOARD_SC_MEDIA_VOLUME_UP

#define HID_KEYBOARD_SC_MEDIA_VOLUME_UP   0xED

◆ HID_KEYBOARD_SC_MEDIA_WWW

#define HID_KEYBOARD_SC_MEDIA_WWW   0xF0

◆ HID_KEYBOARD_SC_MENU

#define HID_KEYBOARD_SC_MENU   0x76

◆ HID_KEYBOARD_SC_MINUS_AND_UNDERSCORE

#define HID_KEYBOARD_SC_MINUS_AND_UNDERSCORE   0x2D

◆ HID_KEYBOARD_SC_MUTE

#define HID_KEYBOARD_SC_MUTE   0x7F

◆ HID_KEYBOARD_SC_N

#define HID_KEYBOARD_SC_N   0x11

◆ HID_KEYBOARD_SC_NON_US_BACKSLASH_AND_PIPE

#define HID_KEYBOARD_SC_NON_US_BACKSLASH_AND_PIPE   0x64

◆ HID_KEYBOARD_SC_NON_US_HASHMARK_AND_TILDE

#define HID_KEYBOARD_SC_NON_US_HASHMARK_AND_TILDE   0x32

◆ HID_KEYBOARD_SC_NUM_LOCK

#define HID_KEYBOARD_SC_NUM_LOCK   0x53

◆ HID_KEYBOARD_SC_O

#define HID_KEYBOARD_SC_O   0x12

◆ HID_KEYBOARD_SC_OPENING_BRACKET_AND_OPENING_BRACE

#define HID_KEYBOARD_SC_OPENING_BRACKET_AND_OPENING_BRACE   0x2F

◆ HID_KEYBOARD_SC_OPER

#define HID_KEYBOARD_SC_OPER   0xA1

◆ HID_KEYBOARD_SC_OUT

#define HID_KEYBOARD_SC_OUT   0xA0

◆ HID_KEYBOARD_SC_P

#define HID_KEYBOARD_SC_P   0x13

◆ HID_KEYBOARD_SC_PAGE_DOWN

#define HID_KEYBOARD_SC_PAGE_DOWN   0x4E

◆ HID_KEYBOARD_SC_PAGE_UP

#define HID_KEYBOARD_SC_PAGE_UP   0x4B

◆ HID_KEYBOARD_SC_PASTE

#define HID_KEYBOARD_SC_PASTE   0x7D

◆ HID_KEYBOARD_SC_PAUSE

#define HID_KEYBOARD_SC_PAUSE   0x48

◆ HID_KEYBOARD_SC_POST_FAIL

#define HID_KEYBOARD_SC_POST_FAIL   0x02

◆ HID_KEYBOARD_SC_POWER

#define HID_KEYBOARD_SC_POWER   0x66

◆ HID_KEYBOARD_SC_PRINT_SCREEN

#define HID_KEYBOARD_SC_PRINT_SCREEN   0x46

◆ HID_KEYBOARD_SC_PRIOR

#define HID_KEYBOARD_SC_PRIOR   0x9D

◆ HID_KEYBOARD_SC_Q

#define HID_KEYBOARD_SC_Q   0x14

◆ HID_KEYBOARD_SC_R

#define HID_KEYBOARD_SC_R   0x15

◆ HID_KEYBOARD_SC_RETURN

#define HID_KEYBOARD_SC_RETURN   0x9E

◆ HID_KEYBOARD_SC_RIGHT_ALT

#define HID_KEYBOARD_SC_RIGHT_ALT   0xE6

◆ HID_KEYBOARD_SC_RIGHT_ARROW

#define HID_KEYBOARD_SC_RIGHT_ARROW   0x4F

◆ HID_KEYBOARD_SC_RIGHT_CONTROL

#define HID_KEYBOARD_SC_RIGHT_CONTROL   0xE4

◆ HID_KEYBOARD_SC_RIGHT_GUI

#define HID_KEYBOARD_SC_RIGHT_GUI   0xE7

◆ HID_KEYBOARD_SC_RIGHT_SHIFT

#define HID_KEYBOARD_SC_RIGHT_SHIFT   0xE5

◆ HID_KEYBOARD_SC_S

#define HID_KEYBOARD_SC_S   0x16

◆ HID_KEYBOARD_SC_SCROLL_LOCK

#define HID_KEYBOARD_SC_SCROLL_LOCK   0x47

◆ HID_KEYBOARD_SC_SELECT

#define HID_KEYBOARD_SC_SELECT   0x77

◆ HID_KEYBOARD_SC_SEMICOLON_AND_COLON

#define HID_KEYBOARD_SC_SEMICOLON_AND_COLON   0x33

◆ HID_KEYBOARD_SC_SEPARATOR

#define HID_KEYBOARD_SC_SEPARATOR   0x9F

◆ HID_KEYBOARD_SC_SLASH_AND_QUESTION_MARK

#define HID_KEYBOARD_SC_SLASH_AND_QUESTION_MARK   0x38

◆ HID_KEYBOARD_SC_SPACE

#define HID_KEYBOARD_SC_SPACE   0x2C

◆ HID_KEYBOARD_SC_STOP

#define HID_KEYBOARD_SC_STOP   0x78

◆ HID_KEYBOARD_SC_SYSREQ

#define HID_KEYBOARD_SC_SYSREQ   0x9A

◆ HID_KEYBOARD_SC_T

#define HID_KEYBOARD_SC_T   0x17

◆ HID_KEYBOARD_SC_TAB

#define HID_KEYBOARD_SC_TAB   0x2B

◆ HID_KEYBOARD_SC_THOUSANDS_SEPARATOR

#define HID_KEYBOARD_SC_THOUSANDS_SEPARATOR   0xB2

◆ HID_KEYBOARD_SC_U

#define HID_KEYBOARD_SC_U   0x18

◆ HID_KEYBOARD_SC_UNDO

#define HID_KEYBOARD_SC_UNDO   0x7A

◆ HID_KEYBOARD_SC_UP_ARROW

#define HID_KEYBOARD_SC_UP_ARROW   0x52

◆ HID_KEYBOARD_SC_V

#define HID_KEYBOARD_SC_V   0x19

◆ HID_KEYBOARD_SC_VOLUME_DOWN

#define HID_KEYBOARD_SC_VOLUME_DOWN   0x81

◆ HID_KEYBOARD_SC_VOLUME_UP

#define HID_KEYBOARD_SC_VOLUME_UP   0x80

◆ HID_KEYBOARD_SC_W

#define HID_KEYBOARD_SC_W   0x1A

◆ HID_KEYBOARD_SC_X

#define HID_KEYBOARD_SC_X   0x1B

◆ HID_KEYBOARD_SC_Y

#define HID_KEYBOARD_SC_Y   0x1C

◆ HID_KEYBOARD_SC_Z

#define HID_KEYBOARD_SC_Z   0x1D

Typedef Documentation

◆ USB_Descriptor_HIDReport_Datatype_t

Type define for the data type used to store HID report descriptor elements.

Enumeration Type Documentation

◆ HID_ClassRequests_t

Enum for the HID class specific control requests that can be issued by the USB bus host.

Enumerator
HID_REQ_GetReport 

HID class-specific Request to get the current HID report from the device.

HID_REQ_GetIdle 

HID class-specific Request to get the current device idle count.

HID_REQ_GetProtocol 

HID class-specific Request to get the current HID report protocol mode.

HID_REQ_SetReport 

HID class-specific Request to set the current HID report to the device.

HID_REQ_SetIdle 

HID class-specific Request to set the device's idle count.

HID_REQ_SetProtocol 

HID class-specific Request to set the current HID report protocol mode.

◆ HID_Descriptor_ClassSubclassProtocol_t

Enum for possible Class, Subclass and Protocol values of device and interface descriptors relating to the HID device class.

Enumerator
HID_CSCP_HIDClass 

Descriptor Class value indicating that the device or interface belongs to the HID class.

HID_CSCP_NonBootSubclass 

Descriptor Subclass value indicating that the device or interface does not implement a HID boot protocol.

HID_CSCP_BootSubclass 

Descriptor Subclass value indicating that the device or interface implements a HID boot protocol.

HID_CSCP_NonBootProtocol 

Descriptor Protocol value indicating that the device or interface does not belong to a HID boot protocol.

HID_CSCP_KeyboardBootProtocol 

Descriptor Protocol value indicating that the device or interface belongs to the Keyboard HID boot protocol.

HID_CSCP_MouseBootProtocol 

Descriptor Protocol value indicating that the device or interface belongs to the Mouse HID boot protocol.

◆ HID_DescriptorTypes_t

Enum for the HID class specific descriptor types.

Enumerator
HID_DTYPE_HID 

Descriptor header type value, to indicate a HID class HID descriptor.

HID_DTYPE_Report 

Descriptor header type value, to indicate a HID class HID report descriptor.

◆ HID_ReportItemTypes_t

Enum for the different types of HID reports.

Enumerator
HID_REPORT_ITEM_In 

Indicates that the item is an IN report type.

HID_REPORT_ITEM_Out 

Indicates that the item is an OUT report type.

HID_REPORT_ITEM_Feature 

Indicates that the item is a FEATURE report type.