++ Ох уж эти ардуинщики…
Вот, правда, с некоторыми вещами мануал реально замучаешься читать. Я пока USB HID и CDC на STM32 поднял, замучился! А в некотором будущем надо еще под F407 то же самое сделать (а там уже OTG, т.е. старый код "немножко причесать" - как я делал с F0/F1/F303 - не выйдет).
А, накануне (написал у себя в ЖЖ) наткнулся на интересный баг STM32F303: там же на SPI идет FIFO, так оказалось, что этот FIFO просто не получается опустошить! И у меня при приеме четырех байт регулярно вылезает сначала старый мусор, а лишь потом нужные данные. По интернету пошерстил - все ругаются на этот косяк от ST, но никто не придумал решения, кроме тупо сбрасывать SPI и настраивать заново перед каждым приемом!