diff --git a/Demos/Host/ClassDriver/VirtualSerialHost/VirtualSerialHost.c b/Demos/Host/ClassDriver/VirtualSerialHost/VirtualSerialHost.c index 36ff503f76..631925e456 100644 --- a/Demos/Host/ClassDriver/VirtualSerialHost/VirtualSerialHost.c +++ b/Demos/Host/ClassDriver/VirtualSerialHost/VirtualSerialHost.c @@ -163,6 +163,18 @@ void EVENT_USB_Host_DeviceEnumerationComplete(void) LEDs_SetAllLEDs(LEDMASK_USB_ERROR); return; } + + VirtualSerial_CDC_Interface.State.LineEncoding.BaudRateBPS = 9600; + VirtualSerial_CDC_Interface.State.LineEncoding.CharFormat = CDC_LINEENCODING_OneStopBit; + VirtualSerial_CDC_Interface.State.LineEncoding.ParityType = CDC_PARITY_None; + VirtualSerial_CDC_Interface.State.LineEncoding.DataBits = 8; + + if (CDC_Host_SetLineEncoding(&VirtualSerial_CDC_Interface)) + { + puts_P(PSTR("Error Setting Device Line Encoding.\r\n")); + LEDs_SetAllLEDs(LEDMASK_USB_ERROR); + return; + } puts_P(PSTR("CDC Device Enumerated.\r\n")); LEDs_SetAllLEDs(LEDMASK_USB_READY); diff --git a/Demos/Host/LowLevel/VirtualSerialHost/VirtualSerialHost.c b/Demos/Host/LowLevel/VirtualSerialHost/VirtualSerialHost.c index 5214dd4767..88d7b74b09 100644 --- a/Demos/Host/LowLevel/VirtualSerialHost/VirtualSerialHost.c +++ b/Demos/Host/LowLevel/VirtualSerialHost/VirtualSerialHost.c @@ -126,6 +126,31 @@ void EVENT_USB_Host_DeviceEnumerationComplete(void) return; } + CDC_LineEncoding_t LineEncoding = { .BaudRateBPS = 9600, + .CharFormat = CDC_LINEENCODING_OneStopBit, + .ParityType = CDC_PARITY_None, + .DataBits = 8 }; + + USB_ControlRequest = (USB_Request_Header_t) + { + .bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE), + .bRequest = CDC_REQ_SetLineEncoding, + .wValue = 0, + .wIndex = 0, + .wLength = sizeof(LineEncoding), + }; + + /* Set the Line Encoding of the CDC interface within the device, so that it is ready to accept data */ + Pipe_SelectPipe(PIPE_CONTROLPIPE); + if (USB_Host_SendControlRequest(&LineEncoding) != HOST_SENDCONTROL_Successful) + { + printf_P(PSTR(ESC_FG_RED "Control Error (Set Line Encoding).\r\n" + " -- Error Code: %d\r\n" ESC_FG_WHITE), ErrorCode); + + LEDs_SetAllLEDs(LEDMASK_USB_ERROR); + return; + } + puts_P(PSTR("CDC Device Enumerated.\r\n")); LEDs_SetAllLEDs(LEDMASK_USB_READY); } diff --git a/LUFA/DoxygenPages/ChangeLog.txt b/LUFA/DoxygenPages/ChangeLog.txt index 5bc80becb9..2e2110afeb 100644 --- a/LUFA/DoxygenPages/ChangeLog.txt +++ b/LUFA/DoxygenPages/ChangeLog.txt @@ -11,7 +11,7 @@ * - Core: * - Added support for the BitWizard Multio and Big-Multio boards * - Library Applications: - * - None + * - Modified the CDC Host demos to set a default CDC Line Encoding on enumerated devices * * Changed: * - Core: