Так в примере который я приложил тоже отправляются данные на хост из задачи.
Вовсе не обязательно данные записывать в теле прерывания
Еще коммент специально по русски написал
Код
// отправляем данные на хост
USB_SIL_Write(EP1_IN, answer, 64);
SetEPTxValid(ENDP1);