скрытое меню

FreeRTOs v1 USB Host (траблы)

Библиотека 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 НЕ ПРОВЕРЯЕТ.

фотка 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;
}