aboutsummaryrefslogtreecommitdiffstats
path: root/Demos/Host/LowLevel
diff options
context:
space:
mode:
Diffstat (limited to 'Demos/Host/LowLevel')
-rw-r--r--Demos/Host/LowLevel/CDCHost/CDCHost.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/Demos/Host/LowLevel/CDCHost/CDCHost.c b/Demos/Host/LowLevel/CDCHost/CDCHost.c
index 7a1788b17..0b09c5a93 100644
--- a/Demos/Host/LowLevel/CDCHost/CDCHost.c
+++ b/Demos/Host/LowLevel/CDCHost/CDCHost.c
@@ -36,6 +36,52 @@
#include "CDCHost.h"
+#if 0
+/* NOTE: Here you can set up a standard stream using the created virtual serial port, so that the standard stream functions in
+ * <stdio.h> 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)
+{
+ Pipe_SelectPipe(CDC_DATAPIPE_OUT);
+
+ if (Pipe_WaitUntilReady())
+ return -1;
+
+ Pipe_Write_Byte(c);
+ Pipe_ClearIN();
+
+ return 0;
+}
+
+static int CDC_getchar(FILE *stream)
+{
+ int c;
+
+ Pipe_SelectPipe(CDC_DATAPIPE_IN);
+
+ for (;;)
+ {
+ if (Pipe_WaitUntilReady())
+ return -1;
+
+ if (!(Pipe_BytesInPipe()))
+ {
+ Pipe_ClearOUT();
+ }
+ else
+ {
+ c = Pipe_Read_Byte();
+ break;
+ }
+ }
+
+ return c;
+}
+
+static FILE USBSerial = FDEV_SETUP_STREAM(CDC_putchar, CDC_getchar, _FDEV_SETUP_RW);
+#endif
+
/** Main program entry point. This routine configures the hardware required by the application, then
* enters a loop to run the application tasks in sequence.
*/