Код
void USB_EndPoint4 (DWORD event) {
BYTE buff[64];
USB_ReadEP(USB_ENDPOINT_OUT(4), buff);
}
void USB_EndPoint5 (DWORD event) {
BYTE buff[64]={'H','e','l','l','o',' ','W','o','r','l','d','!',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
,0,0,0,0,0,0,0,0,0};
USB_WriteEP(USB_ENDPOINT_IN(5), buff, 64);
}
BYTE buff[64];
USB_ReadEP(USB_ENDPOINT_OUT(4), buff);
}
void USB_EndPoint5 (DWORD event) {
BYTE buff[64]={'H','e','l','l','o',' ','W','o','r','l','d','!',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
,0,0,0,0,0,0,0,0,0};
USB_WriteEP(USB_ENDPOINT_IN(5), buff, 64);
}
Но: прерывание по 5ому ендпоинту вообще никогда не вызывается, а по 4му:
когда шлю от компа первый пакет данных - он принимается на "ура", всё ок.
Когда шлю второй пакет - устройство зацикливается в прерывании от ендпоинта, причём в buff приходит всякая чушь.
Родной кеиловский MSD работает отлично. Подскажите пожалуйста, где я ступил, такое чувство, что лишнее отрезал, как будто флаг прерывания не сбрасываю, что ли..