Библиотека USB HOST от STM для FreeRTOS v1 не работает если подключаем обычную клавиатуру.
Код генерируемый Cube MX не рабочий
И это нормально. Так как задачи , чтобы все всегда работало не стоит!
Шина USB универсальная , а подход индивидуальный!
На примере платы STM32F205VGT6.
USBH_malloc меняем на pvPortMalloc
Иначе память не выделяется от слова совсем.
Меняем USBH_free на vPortFree
//USBH_free (phost->pActiveClass->pData);
vPortFree (phost->pActiveClass->pData);
USBH_HID_Process - case : HID_IDLE
Я не знаю по каким религиозным соображениям под FreeRTOS v2 CubeMX в ответе USBH_HID_GetReport проверяет результат на USBH_NOT_SUPPORTED, а в версии FreeRTOS 1 НЕ ПРОВЕРЯЕТ.

Так вот в коде под FreeRTOS v1 CubeMX проверки на USBH_NOT_SUPPORTED не происходит и поэтому переход далее на case HID_SYNC тоже не произойдет никогда.
Надо хотя бы так :
status=USBH_HID_GetReport (phost,
0x01,
0,
HID_Handle->pData,
HID_Handle->length);
if(status == USBH_OK)
{
printf("USBH_HID_GetReport\n");
fifo_write(&HID_Handle->fifo, HID_Handle->pData, HID_Handle->length);
HID_Handle->state = HID_SYNC;
}
else if (status == USBH_NOT_SUPPORTED) // !!!!!!!!
{
HID_Handle->state = HID_SYNC;
status = USBH_OK;
}