Перейти к содержанию
    

STM32 VCP CDC затыкается прием данных от хоста (РЕШЕНО)

Здравствуйте, Уважаемые форумчане!

 

На 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);
    }

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

 

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

 

Кто нибудь сталкивался с таким что затыкается прием данных от хоста?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...