USART CMSIS docs: https://arm-software.github.io/CMSIS_5/Driver/html/group__usart__interface__gr.html
stm32 usb hid: https://damogranlabs.com/2018/02/stm32-usb-hid-mouse-keyboard/
arcade hid: https://github.com/pellepl/arcadehid
cycle counter: https://stackoverflow.com/questions/11530593/cycle-counter-on-arm-cortex-m4-or-m3
stm32 hid: https://pixcl.com/stm32cubemx-truestudio-and-custom-hid-code/
usb descriptor decoder: https://eleccelerator.com/usbdescreqparser/