Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/16: Рейтинг темы: голосов - 16, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 13.11.2014
Сообщений: 79

F10x HAL CDC USB ZLP BUG

24.01.2017, 16:11. Показов 3293. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
День добрый!

На последнем HAL генерю проект с Virtual COM, при отправке в порт 64 байтов они в клиентской программе появляются, только когда запулишь туда что-то еще.

В исходниках есть слово ZLP, но баг, похоже, остался?

Как-то сходу подкрутить не удалось, может быть кто-то в фикс ткнет?

Спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.01.2017, 16:11
Ответы с готовыми решениями:

STM32F103 CubeMX USB composite CDC + CDC (2xCDC)
Добрый день! Задача сделать на STM32F103 два виртуальных СОМ-порта. Сгенерировал проект через CubeMX, вставил в код эхо, все...

Обмен данными с несколькими USB CDC устройствами, подключёнными через USB HUB с внешним питанием
Добрый день уважаемые форумчане, форумчанки, форумчата и форумчатки. Столкнулся с такой проблемой, есть несколько одинаковых устройств,...

USB Audio + USB CDC на одной STM32F4
Итак, есть ЦАП с входом I2S, есть FMприёмник с выходом I2S, есть STM32F405 с двумя I2S. Задача сделать USB аудиокарту/FMприёмник в одном...

2
0 / 0 / 0
Регистрация: 13.11.2014
Сообщений: 79
24.01.2017, 18:05
Была уже тут такая дискуссия:{del}

Пока не понял, в чем проблема: {del}
Чувствую, опять проблемка "на денек" вылезла....

На всякий случай: при попытке отправить данные размером кратным 64, клиентская программа их не получит, пока мы не шлепнем в буфер чего-то еще...
0
0 / 0 / 0
Регистрация: 13.11.2014
Сообщений: 79
24.01.2017, 19:04
Скажите, это не баг драйвера Wymdows 7 ? Поковырялся в HAL_StatusTypeDef USB_EPStartXfer(USB_OTG_GlobalTypeDef *USBx , USB_OTG_EPTypeDef *ep) - но тоже без успеха, пытался манипулировать пакетами или размером...

Собственно если после

USBD_CDC_SetTxBuffer(&hUsbDeviceFS, UserTxBufferFS, Len);
result = USBD_CDC_TransmitPacket(&hUsbDeviceFS);

дождаться hcdc->TxState == 0, а потом
C
1
2
USBD_CDC_SetTxBuffer(&hUsbDeviceFS, UserTxBufferFS, Len);
result = USBD_CDC_TransmitPacket(&hUsbDeviceFS);
то этот вызов отправит ZLP
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
HAL_StatusTypeDef USB_EPStartXfer(USB_OTG_GlobalTypeDef *USBx , USB_OTG_EPTypeDef *ep)
{
uint16_t pktcnt = 0;
 
/* IN endpoint */
if (ep->is_in == 1)
{
/* Zero Length Packet? */
if (ep->xfer_len == 0)
{
USBx_INEP(ep->num)->DIEPTSIZ &= ~(USB_OTG_DIEPTSIZ_PKTCNT);
USBx_INEP(ep->num)->DIEPTSIZ |= (USB_OTG_DIEPTSIZ_PKTCNT & (1 << 19)) ;
USBx_INEP(ep->num)->DIEPTSIZ &= ~(USB_OTG_DIEPTSIZ_XFRSIZ);
}
else ..............
и на хосте в приложении данные появятся.

Я все это изящным костыльком подпер, благо архитектура программы позволяет. Но мне кажется на уровне стека это тоже можно было бы подправить...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.01.2017, 19:04
Помогаю со студенческими работами здесь

STM32F4Discovery USB CDC
Всем добрый день. Вопрос такой. Есть плата STM32F4Dyscovery, начал осваивать USB, с теорией интерфейса ознакомился.В Ref Man на данный МК...

USB CDC for CC1111
Существует ли в природе полноценный субж, а не то недоделанное создание, которое предлагается в архиве USB firmware omd examples .zip ?

stm32f2 usb cdc (vcp)
Не получается запустить usb на stm32f2. Пробовал генерировать проект в stm32cube. При подключении устройства к компу пишет &quot;сбой...

STM32F4-Discovery + USB CDC
Здравствуйте! Купил сие чудо STM32F4-Dyscovery. Прикрутил USORT, прерывания, акселерометр. Задача следующая: получить данные с...

STM32F4-Discovery USB CDC
В общем, взял я особо популярный финский пример, подправил его быстро под Coosox. После дефайнов компилируется и линкуется как по маслу. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru