This example implements a USB Device that exchanges data with a USB Host using HID: Human Interface Device Class.
A graphical HID Client program is available for the USB Host Computer (Windows only) to interface with the LEDs and buttons on the target USB Device.
The following picture shows an exemplary connection of the development board and the USB Host Computer.
The USB Device HID project is available as part of the USB Device Reference examples.
Following files implement application-specific logic in the example:
HID.c
: contains the application main thread which initializes the USB Device Component. It also sends the current input status (typically buttons state) via USBD_HID_GetReportTrigger to the USB Host.USBD_User_HID_0.c
: adapted code template that implements necessary functions for I/O communication. Refer to HID: Human Interface Class for details.Configuration files for the software components used in the project are available in the ./RTE/
directory and can be modified by users to adjust the operation of related components. Section RTE Components gives an overview about the components and their dependencies.
Following configuration files are provided with this example:
./RTE/USB/
folder:USBD_Config_HID_0.h
: USB Device HID Class configuration.USBD_Config_0.h
: USB Device Core configuration.USB_Debug.h
: USB Device Debug configuration../RTE/CMSIS/
folder:RTX_Config.h
and RTX_Config.c
: CMSIS-RTX Configuration files for the RTOS Kernel.When a board layer is added to the project, corresponding configuration files for the board and device components will become available in the local ./Board/
directory.
In order to build the project it shall be extended with a compatible board layer that provides following interfaces as connections:
CMSIS_USB_Device
: CMSIS-Driver for USB Device interface.CMSIS_VIO
: CMSIS-Driver for Virtual I/O interface.Working with MDK-Middleware Examples explains the workflow for accessing, configuring and building an MDK-Middleware example project for your target hardware.
Setup
Board-specific hardware setup such as jumpers, USB ports, power supply, etc. is documented in the board layer description (README.md
) of your selected target.
Example execution
The USB Device HID example can be tested against a HID Client utility that is available for Windows PCs only. The program runs stand-alone without installation.
Steps to check the USB communication using the client utility:
HIDClient.exe
utility.