У меня так:
CODE
#if USB_ERROR_EVENT
static const char* UsbErrorMsgs[] =
{
"-------| PID_ERR -------------------------------------",
"------|- Unexpected Packet --------------------------",
"-----|-- Data CRC error -----------------------------",
"----|--- TIMEOUT ------------------------------------",
"---|---- End of packet error -------------------------",
"--|----- Buffer Overrun ------------------------------",
"-|------ Bit stuff error --------------------------",
"|------- Wrong toggle bit in data PID ----------------"
};
void USB_Error_Event(uint32_t error) // void USB_Error_Event (DWORD error)
{
TT_EN(Usb_ErrorEvent);
TT_MSG("error = 0x%X", error);
if (error & 0x000000FFL)
{
uint32_t i, err_msk;
for (i = 0, err_msk = 0x1; i < 8 ; i++, err_msk <<= 1)
{
if (error & err_msk)
{
TT_STR(UsbErrorMsgs[i]);
}
}
}
if (error & 0xFFFFFF00L)
{
TT_ERR_STR("USB_UNEXPECTED Error <================================");
}
if (error == 0)
{
TT_ERR_STR("UNEXPECTED invoke USB_Error_Event() handler <=========");
}
TT_EX();
}
#endif