this software.\r
*/\r
\r
+#define __INCLUDE_FROM_USB_DRIVER\r
#include "../../HighLevel/USBMode.h"\r
#if defined(USB_CAN_BE_DEVICE)\r
\r
-#define INCLUDE_FROM_CDC_CLASS_DEVICE_C\r
+#define __INCLUDE_FROM_CDC_CLASS_DEVICE_C\r
+#define __INCLUDE_FROM_CDC_DRIVER\r
#include "CDC.h"\r
\r
void CDC_Device_Event_Stub(void)\r
\r
Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataOUTEndpointNumber);\r
\r
- if (Endpoint_IsOUTReceived() && !(Endpoint_BytesInEndpoint()))\r
- Endpoint_ClearOUT();\r
+ if (Endpoint_IsOUTReceived())\r
+ {\r
+ if (!(Endpoint_BytesInEndpoint()))\r
+ Endpoint_ClearOUT();\r
\r
- return Endpoint_BytesInEndpoint();\r
+ return Endpoint_BytesInEndpoint();\r
+ }\r
+ else\r
+ {\r
+ return 0;\r
+ }\r
}\r
\r
uint8_t CDC_Device_ReceiveByte(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo)\r
{\r
while (!(CDC_Device_BytesReceived((USB_ClassInfo_CDC_Device_t*)fdev_get_udata(Stream))))\r
{\r
+ if (USB_DeviceState == DEVICE_STATE_Unattached)\r
+ return _FDEV_EOF;\r
+ \r
CDC_Device_USBTask((USB_ClassInfo_CDC_Device_t*)fdev_get_udata(Stream));\r
USB_USBTask();\r
}\r