Andre Savelev
Хотя если подумать, ваш метод с проверкой результата на USBD_BUSY не хуже. Так как внутри CDC_Transmit_FS делается такая же проверка.
Вчера просто уже спать хотел, и думал, что CDC_Transmit_FS может быть тяжёлой функцией, которая копирует какие-нибудь буферы, поэтому проверять результат её выполнения с повторной отправкой, может быть накладно.
:) Спасибо что сообщили. В целом два почти равнозначных варианта. Я у себя пока код не причесывал, но ваш вариант (сначала подождать пока USBD_BUSY а потом наверняка отправить) вероятно более универсален. Мой вариант может быть чуть быстрее только если заведомо известно, что "конфликты" возникают очень редко, да и то выигрыш будет в "несколько тактов", что, скорее всего, несущественно :)