Added new stream creation function to the CDC Class drivers, to easily make standard streams from CDC Class driver instances.
This commit is contained in:
parent
d6edfe35c8
commit
c1782ac024
9 changed files with 88 additions and 47 deletions
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue