Использую проект Virtual COM port сгенерированный в CubeMX для STM32F429. Немного преобразовал проект, у меня работает один Bulk-out endpoint и один Interrupt-in. Проблема в том, что если я периодически передаю сообщения по Interrupt, используя стандартную функцию
Код
CDC_Transmit_HS(uint8_t* Buf, uint16_t Len)
и одновременно принимаю данные по BulkКод
CDC_Receive_HS (uint8_t* Buf, uint32_t *Len)
, то иногда зависает посылка по Bulk.Видимо проблема в том, что иногда я в основном цикле вызываю CDC_Transmit_HS и в это время в прерывании вызывается CDC_Receive_HS. Я засунул вызов CDC_Transmit_HS в прерывание USB SOF (по сути разделил эти две функции по времени) и зависания Bulk прекратились. Хотелось бы прояснить, почему так происходит?