diff options
Diffstat (limited to 'Demos/Device/ClassDriver/CDC/CDC.c')
| -rw-r--r-- | Demos/Device/ClassDriver/CDC/CDC.c | 34 | 
1 files changed, 12 insertions, 22 deletions
diff --git a/Demos/Device/ClassDriver/CDC/CDC.c b/Demos/Device/ClassDriver/CDC/CDC.c index 90cbaf0bc..5d74cb1a5 100644 --- a/Demos/Device/ClassDriver/CDC/CDC.c +++ b/Demos/Device/ClassDriver/CDC/CDC.c @@ -60,27 +60,10 @@ 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
 - *       <stdio.h> can be used on the virtual serial port (e.g. fprintf(&USBSerial, "Test"); to print a string).
 +/** Standard file stream for the CDC interface when set up, so that the virtual CDC COM port can be
 + *  used like any regular character stream in the C APIs
   */
 -
 -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
 +static FILE USBSerialStream;
  /** Main program entry point. This routine contains the overall program flow, including initial
   *  setup of all components and the main program loop.
 @@ -89,6 +72,9 @@ int main(void)  {
  	SetupHardware();
 +	/* Create a regular character stream for the interface so that it can be used with the stdio.h functions */
 +	CDC_Device_CreateStream(&VirtualSerial_CDC_Interface, &USBSerialStream);
 +
  	LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
  	for (;;)
 @@ -143,8 +129,12 @@ void CheckJoystickMovement(void)  	if ((ReportString != NULL) && (ActionSent == false))
  	{
  		ActionSent = true;
 -		
 -		CDC_Device_SendString(&VirtualSerial_CDC_Interface, ReportString, strlen(ReportString));		
 +
 +		// Write the string to the virtual COM port via the created character stream
 +		fputs(ReportString, &USBSerialStream);
 +
 +		// Alternatively, without the stream:
 +		// CDC_Device_SendString(&VirtualSerial_CDC_Interface, ReportString, strlen(ReportString));
  	}
  }
  | 
