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

 
 
> STM32F105 USB CDC receive
Still Enemy
сообщение Jul 30 2015, 07:19
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 29-01-15
Из: Нижний Новгород
Пользователь №: 84 817



Есть задача передавать из ПК в МК большой массив данных(~16 МБ). Попробовал программку Terminal - 255 байт передаётся нормально, но больше 255 байт отослать программа не даёт. В этой проге есть еще функция передавать целый файл. Ну я создал файл 32кБ для начала, отправляю этой программкой, а он мне его по байту разбил и отослал) Я думаю, это не очень корректно.
Писал прогу на Qt и пробовал через консольку файл кидать(два разных действия), результат один - передача не проходит. Пользуюсь прогой USBlyzer, в ней при отправке пишется, что передача Cancelled. В Мк приходит 64 байта, остальное хз где теряется. Может кто объяснит почему так?

Код, который обрабатывает прием в Мк по прерыванию:
Код
static int8_t CDC_Init_FS(void)
{
  hUsbDevice_0 = &hUsbDeviceFS;
  /* USER CODE BEGIN 3 */
  /* Set Application Buffers */
  USBD_CDC_SetRxBuffer(hUsbDevice_0, RxBuffer);
  VCPInitialized = 1;
  return (USBD_OK);
  /* USER CODE END 3 */
}

static int8_t CDC_Receive_FS (uint8_t* Buf, uint32_t *Len)
{
  USBD_CDC_ReceivePacket(hUsbDevice_0);
  if (RxBufferOffset == 8)
    RxBufferOffset = 0;
  memcpy(UserRxBufferFS+RxBufferOffset*0x40, RxBuffer, 0x40);
  RxBufferOffset++;
  return (USBD_OK);
}


Сообщение отредактировал Still Enemy - Jul 30 2015, 07:32
Go to the top of the page
 
+Quote Post



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

 


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


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