HidKeyboardKit Drivers

Detailed Description

Implements a USB HID class keyboard.

HIDKBD Implementation

The source code of the HIDKBD implementation resides in kits/common/drivers/hidkbd.c and hidkbd.h. This driver implements a basic USB keyboard. Refer to hidkbd examples for STK3700 and DK3750 for examples using this driver.

HIDKBD Device Configuration Options

This section contains a description of the configuration options for the driver. The options are #define's which are expected to be found in the application "usbconfig.h" header file. The values shown below are from the Giant Gecko STK3700 hidbkd example.

// USB interface number. Interfaces are numbered from zero to one less than
// the number of concurrent interfaces supported by the configuration.
// The interfac numbers must be 0 standalone HID device, for a
// composite device which includes a HID interface it must not be in conflict
// with other device interfaces.
#define HIDKBD_INTERFACE_NO     0

// Endpoint address for HID input reports.
#define HIDKBD_INTR_IN_EP_ADDR  0x81

// The bInterval reported with the interrupt IN endpoint descriptor.
#define HIDKBD_POLL_RATE        24

// Timer id, see USBTIMER in the USB device stack documentation.
// The HID driver use a timer to implement the idle-rate defined in the HID class spec.
#define HIDKBD_IDLE_TIMER       0

Data Structures

struct  HIDKBD_Init_t
 
struct  HIDKBD_KeyReport_t
 

Macros

#define DEFAULT_IDLE_RATE   500
 

Typedefs

typedef void(* HIDKBD_SetReportFunc_t) (uint8_t report)
 Callback function pointer for HID output reports. This function will be called by the driver each time an output report is received by the device.
 

Functions

void HIDKBD_Init (HIDKBD_Init_t *init)
 Initialize HID Keyboard driver.
 
void HIDKBD_KeyboardEvent (HIDKBD_KeyReport_t *report)
 Report a keyboard press/release event.
 
int HIDKBD_SetupCmd (const USB_Setup_TypeDef *setup)
 Handle USB setup commands. Implements HID class specific commands. This function must be called each time the device receive a setup command.
 
void HIDKBD_StateChangeEvent (USBD_State_TypeDef oldState, USBD_State_TypeDef newState)
 Handle USB state change events, this function must be called each time the USB device state is changed.
 
const char HIDKBD_ReportDescriptor[69] SL_ATTRIBUTE_ALIGN (4)
 

Variables

const char HIDKBD_ReportDescriptor [69]
 

Macro Definition Documentation

#define DEFAULT_IDLE_RATE   500

Default idle-rate recommended in the USB HID class specification.

Definition at line 72 of file hidkbd.c.

Referenced by HIDKBD_StateChangeEvent().

Typedef Documentation

typedef void(* HIDKBD_SetReportFunc_t) (uint8_t report)

Callback function pointer for HID output reports. This function will be called by the driver each time an output report is received by the device.

Parameters
[in]reportOutput report byte.
Bit 0 : State of keyboard NumLock LED.
Bit 1 : State of keyboard CapsLock LED.
Bit 2 : State of keyboard ScrollLock LED.

Definition at line 59 of file hidkbd.h.

Function Documentation

void HIDKBD_Init ( HIDKBD_Init_t init)

Initialize HID Keyboard driver.

Parameters
[in]initPointer to a HIDKBD_Init_t struct with configuration options.

Definition at line 198 of file hidkbd.c.

References HIDKBD_Init_t::hidDescriptor, and HIDKBD_Init_t::setReportFunc.

void HIDKBD_KeyboardEvent ( HIDKBD_KeyReport_t report)

Report a keyboard press/release event.

Parameters
[in]reportPointer to a HIDKBD_KeyReport_t struct with new key pressed information.

Definition at line 213 of file hidkbd.c.

int HIDKBD_SetupCmd ( const USB_Setup_TypeDef *  setup)

Handle USB setup commands. Implements HID class specific commands. This function must be called each time the device receive a setup command.

Parameters
[in]setupPointer to the setup packet received.
Returns
USB_STATUS_OK if command accepted, USB_STATUS_REQ_UNHANDLED when command is unknown. In the latter case the USB device stack will handle the request.

Definition at line 240 of file hidkbd.c.

References SL_MIN.

void HIDKBD_StateChangeEvent ( USBD_State_TypeDef  oldState,
USBD_State_TypeDef  newState 
)

Handle USB state change events, this function must be called each time the USB device state is changed.

Parameters
[in]oldStateThe device state the device has just left.
[in]newStateThe new device state.

Definition at line 337 of file hidkbd.c.

References DEFAULT_IDLE_RATE.

const char HIDKBD_ReportDescriptor [69] SL_ATTRIBUTE_ALIGN ( )

HID report descriptor created with usb.org's "HID Descriptor Tool(DT)" version 2.4. The descriptor defines an input report which matches the HIDKBD_KeyReport_t typedef, and an output report with 3 bits for controlling NumLock, CapsLock and ScrollLock keyboard LED's