Fixed spurious 0xFE USART byte sent in the USBtoSerial project when the baud rate...
authorDean Camera <dean@fourwalledcubicle.com>
Fri, 30 May 2014 09:48:19 +0000 (19:48 +1000)
committerDean Camera <dean@fourwalledcubicle.com>
Fri, 30 May 2014 09:48:19 +0000 (19:48 +1000)
LUFA/DoxygenPages/ChangeLog.txt
Projects/USBtoSerial/USBtoSerial.c

index c1dcef9..2994270 100644 (file)
@@ -13,6 +13,8 @@
   *     when a pipe configuration failed (thanks to Helge Suess)
   *   - Fixed incorrect LED driver definitions for the Arduino Leonardo board (thanks to Zoltán Szőke)
   *   - Fixed incorrect XMEGA DFLL reference frequency (thanks to Martin Aakerberg)
+  *  - Library Applications:
+  *   - Fixed spurious 0xFE USART byte sent in the USBtoSerial project when the baud rate is changed (thanks to Carl Kjeldsen)
   *
   *  \section Sec_ChangeLog140302 Version 140302
   *  <b>New:</b>
index 758e30c..1c791d9 100644 (file)
@@ -232,6 +232,9 @@ void EVENT_CDC_Device_LineEncodingChanged(USB_ClassInfo_CDC_Device_t* const CDCI
                        break;
        }
 
+       /* Keep the TX line held high (idle) while the USART is reconfigured */
+       PORTD |= (1 << 3);
+
        /* Must turn off USART before reconfiguring it, otherwise incorrect operation may occur */
        UCSR1B = 0;
        UCSR1A = 0;
@@ -244,5 +247,8 @@ void EVENT_CDC_Device_LineEncodingChanged(USB_ClassInfo_CDC_Device_t* const CDCI
        UCSR1C = ConfigMask;
        UCSR1A = (1 << U2X1);
        UCSR1B = ((1 << RXCIE1) | (1 << TXEN1) | (1 << RXEN1));
+
+       /* Release the TX line after the USART has been reconfigured */
+       PORTD &= ~(1 << 3);
 }