Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Передача по USB
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Atlantis-
Добрый день!
Столкнулся с такой проблемой: криво работает передача по USB Interrupt каналу. Использую стандартные функции, сгенерированные CubeMX. Вызываю вот эту функцию для передачи данных
Код
uint8_t CDC_Transmit_HS(uint8_t* Buf, uint16_t Len)
{
  uint8_t result = USBD_OK;
  /* USER CODE BEGIN 12 */
  USBD_CDC_SetTxBuffer(hUsbDevice_1, Buf, Len);  
  result = USBD_CDC_TransmitPacket(hUsbDevice_1);
  /* USER CODE END 12 */
  return result;
}


Передаю по 8 байт, вызываю функцию передачи 8 раз. При этом приходит только первая посылка. Период между вызовами функции передачи данных составляет 480 микросекунд. Попробовал отправлять данные под отладкой - приходят все 8 пакетов. Фактически, под отладкой я изменил только период между вызовами функции передачи данных. Получается, я слишком часто передаю данные?
Kabdim
Как оно там в хале - не в курсе. Но логика простая, нужно не задержки вставлять, а ждать освобождения внутреннего буфера у USB engine'а.
Atlantis-
Я понял, вопрос только в том как это извлечь из HAL-a...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.