По какой то причине USB HID в STM32L052 работает мягко говоря ненадежно, на одних машине работает безупречно, на других либо через раз, либо вообще не работает,
не работает это не проходи инициализация и устройство не определяется в ОС, в стеке не вызывается callback функция CUSTOM_HID_Init_FS, а аппаратно USB выдает прерывания об ошибки (и не только их)
от ОС (ubuntu win7 win XP не зависит), есть где безупречно работает и на linux и на win, есть где глючит и на linux и на win
это совсем негодный стек или что ?
лог
CODE
RESET
ESOF
ESOF
SUSP
ESOF
WKUP
RESET
CTR
SOF
DIR
ERR
CTR
DIR
ERR
ERR
CTR
DIR
RESET
CTR
SOF
DIR
ERR
SOF
ERR
ERR
CTR
DIR
CTR
DIR
RESET
SOF
ESOF
RESET
CTR
SOF
DIR
CTR
DIR
CTR
DIR
ERR
RESET
CTR
SOF
DIR
CTR
DIR
ERR
CTR
DIR
RESET
SOF
ESOF
RESET
CTR
SOF
DIR
ERR
SOF
ERR
CTR
SOF
DIR
CTR
DIR
SOF
ESOF
RESET
CTR
SOF
DIR
CTR
SOF
DIR
ERR
CTR
SOF
DIR
CTR
DIR
ERR
ERR
SOF
ESOF
ESOF
SUSP
ESOF
описание тегов
CODE
temp=hpcd->Instance->ISTR;
if (temp&USB_ISTR_CTR )printf("CTR\n"); //Correct TRansfer
if (temp&USB_ISTR_PMAOVR )printf("PMAOVR\n");// DMA OVeRunderrun
if (temp&USB_ISTR_ERR )printf("ERR\n"); // ERRor
if (temp&USB_ISTR_WKUP )printf("WKUP\n"); // WaKe UP
if (temp&USB_ISTR_SUSP )printf("SUSP\n"); // SUSPend
if (temp&USB_ISTR_RESET )printf("RESET\n"); // RESET
if (temp&USB_ISTR_SOF )printf("SOF\n"); // Start Of Frame
if (temp&USB_ISTR_ESOF )printf("ESOF\n"); // Expected Start Of Frame
if (temp&USB_ISTR_L1REQ )printf("L1REQ\n"); // LPM L1 state request
if (temp&USB_ISTR_DIR )printf("DIR\n"); // DIRection of transaction
if (temp&USB_ISTR_EP_ID )printf("EP_ID\n"); // EndPoint IDentifier