aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2014-08-10 19:17:58 +1000
committerDean Camera <dean@fourwalledcubicle.com>2014-08-10 19:17:58 +1000
commitb6899bb98734a79514ab90583144139b879f7001 (patch)
treec7febd2cb4139d1c60f4f304a715b79ff6be0037
parent4c06a9c88fe6c9a294d5f7bda94528630da3ee3f (diff)
downloadlufa-b6899bb98734a79514ab90583144139b879f7001.tar.gz
lufa-b6899bb98734a79514ab90583144139b879f7001.tar.bz2
lufa-b6899bb98734a79514ab90583144139b879f7001.zip
Fixed USART reception overrun corrupting the internal buffers in the USBtoSerial project.
-rw-r--r--LUFA/DoxygenPages/ChangeLog.txt1
-rw-r--r--Projects/USBtoSerial/USBtoSerial.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/LUFA/DoxygenPages/ChangeLog.txt b/LUFA/DoxygenPages/ChangeLog.txt
index d8f1d73fe..78d3abdcc 100644
--- a/LUFA/DoxygenPages/ChangeLog.txt
+++ b/LUFA/DoxygenPages/ChangeLog.txt
@@ -24,6 +24,7 @@
* - Library Applications:
* - Fixed spurious 0xFE USART byte sent in the USBtoSerial project when the baud rate is changed (thanks to Carl Kjeldsen)
* - Fixed blocking USART reads causing low throughput on slow baud rates in the USBtoSerial project (thanks to Nevada Smith)
+ * - Fixed USART reception overrun corrupting the internal buffers in the USBtoSerial project (thanks to Nevada Smith)
*
* \section Sec_ChangeLog140302 Version 140302
* <b>New:</b>
diff --git a/Projects/USBtoSerial/USBtoSerial.c b/Projects/USBtoSerial/USBtoSerial.c
index b51c7c258..343b51ba5 100644
--- a/Projects/USBtoSerial/USBtoSerial.c
+++ b/Projects/USBtoSerial/USBtoSerial.c
@@ -194,7 +194,7 @@ ISR(USART1_RX_vect, ISR_BLOCK)
{
uint8_t ReceivedByte = UDR1;
- if (USB_DeviceState == DEVICE_STATE_Configured)
+ if ((USB_DeviceState == DEVICE_STATE_Configured) && !(RingBuffer_IsFull(&USARTtoUSB_Buffer)))
RingBuffer_Insert(&USARTtoUSB_Buffer, ReceivedByte);
}