Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32 VCP CDC затыкается прием данных от хоста (РЕШЕНО)
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
bullit
Здравствуйте, Уважаемые форумчане!

На STM32F105 реализовываю VCP (CDC) HAL (версия 1.1.0) с помощью CubeMX + FreeRTOS.

При "частом" запросе (22 байта в 10 мс) вешается приём данных от хоста.
Паралельно из двух задач вызывается result = CDC_Transmit_FS(buf, len);
Защитил мьютексами, защитил запретом прерывания:
Код
osStatus status = osMutexWait(MutexUSBSend_id, timeout);
    if (status == osOK)
    {
        do {
            //cnt_send++;
            // wait N millisek
            __disable_irq();
            HAL_GPIO_WritePin(GPIOB, GPIO_PIN_15, GPIO_PIN_SET);
            result = CDC_Transmit_FS(buf, len);
            HAL_GPIO_WritePin(GPIOB, GPIO_PIN_15, GPIO_PIN_RESET);
            __enable_irq();
            osDelay(1);
        } while( result != USBD_OK /*|| cnt_send < 3*/);
        osMutexRelease(MutexUSBSend_id);
    }

Один фиг перестаёт принимать байты через некоторое время

Приём данных: кидаю в буфер, кидаю сообщение задаче, та выдёргивает из буфера, парсит, отвечает. Другая задача от программы мк получает пакеты на передачу и также вызывает выше указанный код.

Кто нибудь сталкивался с таким что затыкается прием данных от хоста?
bullit
Решение нашлось, и было не в USB.
Тему можно закрывать!
Всем спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.