Fixed spurious 0xFE USART byte sent in the USBtoSerial project when the baud rate is changed (thanks to Carl Kjeldsen).

This commit is contained in:
Dean Camera 2014-05-30 19:48:19 +10:00
parent f63496a117
commit 1b93c85b20
2 changed files with 8 additions and 0 deletions

View 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>

View 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);
}