X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/864196c884ef3602aee44f1a68aceb5819a07f21..a789619fbe2cd07347816cc5c168e8f904acca86:/Demos/Device/ClassDriver/CDC/CDC.c diff --git a/Demos/Device/ClassDriver/CDC/CDC.c b/Demos/Device/ClassDriver/CDC/CDC.c index 3e83ec269..8e3530ca2 100644 --- a/Demos/Device/ClassDriver/CDC/CDC.c +++ b/Demos/Device/ClassDriver/CDC/CDC.c @@ -57,6 +57,28 @@ USB_ClassInfo_CDC_Device_t VirtualSerial_CDC_Interface = }, }; +#if 0 +/* NOTE: Here you can set up a standard stream using the created virtual serial port, so that the standard stream functions in + * can be used on the virtual serial port (e.g. fprintf(&USBSerial, "Test"); to print a string). + */ + +static int CDC_putchar(char c, FILE *stream) +{ + CDC_Device_SendByte(&VirtualSerial_CDC_Interface, c); + return 0; +} + +static int CDC_getchar(FILE *stream) +{ + if (!(CDC_Device_BytesReceived(&VirtualSerial_CDC_Interface))) + return -1; + + return CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface); +} + +static FILE USBSerial = FDEV_SETUP_STREAM(CDC_putchar, CDC_getchar, _FDEV_SETUP_RW); +#endif + /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. */ @@ -69,7 +91,8 @@ int main(void) for (;;) { CheckJoystickMovement(); - + + /* Must throw away unused bytes from the host, or it will lock up while waiting for the device */ while (CDC_Device_BytesReceived(&VirtualSerial_CDC_Interface)) CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface);