I have just made available an example application demonstrating how to communicate using the HID (Human Interface Device) class over USB.
The example uses ChibiOS/RT operating system and targets the Olimex STM32-E407 board. A client application using the HIDRAW driver of the Linux kernel is included to test the two ends of the communication.
The project is available on my GitLab account: guiduc/usb-hid-chibios-example. Feel free to use it as a basis for you own application.