}\r
}\r
\r
+void Endpoint_ClearStatusStage(void)\r
+{\r
+ if (USB_ControlRequest.bmRequestType & REQDIR_DEVICETOHOST)\r
+ {\r
+ while (!(Endpoint_IsOUTReceived()))\r
+ { \r
+ if (USB_DeviceState == DEVICE_STATE_Unattached)\r
+ return;\r
+ }\r
+\r
+ Endpoint_ClearOUT();\r
+ }\r
+ else\r
+ {\r
+ while (!(Endpoint_IsINReady()))\r
+ {\r
+ if (USB_DeviceState == DEVICE_STATE_Unattached)\r
+ return;\r
+ }\r
+ \r
+ Endpoint_ClearIN();\r
+ }\r
+}\r
+\r
#if !defined(CONTROL_ONLY_DEVICE)\r
uint8_t Endpoint_WaitUntilReady(void)\r
{\r
return ENDPOINT_READYWAIT_NoError; \r
}\r
\r
- if (!(USB_IsConnected))\r
+ if (USB_DeviceState == DEVICE_STATE_Unattached)\r
return ENDPOINT_READYWAIT_DeviceDisconnected;\r
else if (Endpoint_IsStalled())\r
return ENDPOINT_READYWAIT_EndpointStalled;\r