Переделал атмеловский пример чтобы входящие пакеты отдавались разборщикам пакетов от ком-портов, а ответы отправлялись в USB CDC. Обмен прекрасно заработал, пока случайно не обнаружил что входящий пакет размером 64 байта не вызывает UDP_EndOfTransfer, вызов которой необходим для вызова callback функции приёма и, соответственно, для обработки принятого пакета.
Не проходит проверка условия:
Код
if ((pTransfer->remaining == 0) || (wPacketSize < pEndpoint->size))
в процедуре static void UDP_EndpointHandler(unsigned char bEndpoint). pEndpoint->size = 64.При этом пакеты больше 64 байт и меньше 64 байт принимаются и обрабатываются правильно.
Подозреваю что нужно переделать приём на другой EndPoint с размером буфера 256 байт, но как это сделать в мудрёном примере не нахожу.
Как это сделать?