Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не работает передача 8-ми байт по USB
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
juvf
На stm32f401 использую stm-овскую библиотеку усб. На компе использую libusb-win32-bin-1.2.5.0

Из мк передаю в комп пакет через булк. код
Код
DCD_EP_Tx(&USB_OTG_dev, 02, usbBuffer, size);

Если size != 8, то комп принимает нормальный пакет. Без ошибок. Если в мк size = 8, то комп не получает пакет.... usb_bulk_read() возвращяет -116, т.к. ошибка по таймауту. Не дожидается комп ответа от мк. Ставлю ожидание 1 сек, 5 сек.... не принимает комп ни чего. -116 и всё! Но если мк передает паке размером отличный от 8..... например 4,5 1, или 27.... то всё нормально.

Как говориться - в чём дело? Почему так происходит?
prottoss
Цитата(juvf @ Aug 8 2016, 15:44) *
Как говориться - в чём дело? Почему так происходит?

Если размер отправляемого пакета равен размеру конечной точки то после отправки пакета необходимо отправить пакет нулевой длины - так драйвер на стороне РС поймет, что передача закончена - иначе он будет ждать следующий пакет.
juvf
prottoss, спасибо большое, помогло!!!!.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.