diff options
author | Dean Camera <[email protected]> | 2009-10-11 06:14:08 +0000 |
---|---|---|
committer | Dean Camera <[email protected]> | 2009-10-11 06:14:08 +0000 |
commit | be9d0a5aa97c84cc8723f69f2b88576965e386aa (patch) | |
tree | a8ffa2c456db709cc5c981524f8f882b430882c2 /Demos | |
parent | c7bc3ec391da3904f0db6398171c7fed37d4f836 (diff) | |
download | qmk_firmware-be9d0a5aa97c84cc8723f69f2b88576965e386aa.tar.gz qmk_firmware-be9d0a5aa97c84cc8723f69f2b88576965e386aa.zip |
Added stdio.h stream examples for the virtual CDC UART in the CDC host demos.
Removed accidental reference to the incomplete MIDI class bootloader in the Bootloader folder makefile.
Diffstat (limited to 'Demos')
-rw-r--r-- | Demos/Host/ClassDriver/CDCHost/CDCHost.c | 21 | ||||
-rw-r--r-- | Demos/Host/LowLevel/CDCHost/CDCHost.c | 46 |
2 files changed, 67 insertions, 0 deletions
diff --git a/Demos/Host/ClassDriver/CDCHost/CDCHost.c b/Demos/Host/ClassDriver/CDCHost/CDCHost.c index fd12137c80..99c0c81727 100644 --- a/Demos/Host/ClassDriver/CDCHost/CDCHost.c +++ b/Demos/Host/ClassDriver/CDCHost/CDCHost.c @@ -50,6 +50,27 @@ USB_ClassInfo_CDC_Host_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
+ * <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)
+{
+ CDC_Host_SendByte(&VirtualSerial_CDC_Interface, c);
+ return 0;
+}
+
+static int CDC_getchar(FILE *stream)
+{
+ if (!(CDC_Host_BytesReceived(&VirtualSerial_CDC_Interface)))
+ return -1;
+
+ return CDC_Host_ReceiveByte(&VirtualSerial_CDC_Interface);
+}
+
+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.
diff --git a/Demos/Host/LowLevel/CDCHost/CDCHost.c b/Demos/Host/LowLevel/CDCHost/CDCHost.c index 7a1788b175..0b09c5a93b 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.
*/
|