Доброго времени суток. Использую STM32F407 и код, собранный в CubeMX. Вкратце, в проекте подняты Ethernet (LwIP) и USB CDC (RTOS не используется); по приходу UDP-пакета в Ethernet по USB на ПК отправляется диагностическое сообщение о том, что пакет успешно принят.
Проблема состоит в следующем. В случае, если UDP-пакеты приходят с фиксированным интервалом (1 мс), всё работает правильно. Но при отправке данных без интервала (используется самописная программа на Qt) большая часть UDP-пакетов не обрабатывается (на 10 пакетов приходится 3-4 сообщения о приёме). Опытным путём было установлено, что проблема возникает только тогда, когда сообщение отправляется после каждого пришедшего пакета, т.е., если отправлять, например, одно сообщение на 255 пакетов, всё работает правильно. Предположительно, получается, что проблема в том, что контроллер не принимает или не обрабатывает пакет, пока идёт отправка сообщения по USB.
Вопрос -- в следующем: правильно ли я понимаю суть проблемы, и, если да, то как её решить? Может, можно увеличить какие-то буферы или поднять скорость обработки данных каким-либо способом? Заранее спасибо