реклама на сайте
подробности

 
 
> USB CDC на SAM7X, не принимаются пакеты размером 64 байта
athlon64
сообщение Aug 26 2011, 06:06
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 156
Регистрация: 10-03-10
Из: Уфа
Пользователь №: 55 882



Делаю виртуальный COM-порт на USB AT91SAM7X.
Переделал атмеловский пример чтобы входящие пакеты отдавались разборщикам пакетов от ком-портов, а ответы отправлялись в 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 байт, но как это сделать в мудрёном примере не нахожу.
Как это сделать?

Сообщение отредактировал athlon64 - Aug 26 2011, 06:11


--------------------
Руслан
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 22:22
Рейтинг@Mail.ru


Страница сгенерированна за 0.01344 секунд с 7
ELECTRONIX ©2004-2016