diff options
author | bnewbold <bnewbold@robocracy.org> | 2010-07-15 23:34:23 -0400 |
---|---|---|
committer | bnewbold <bnewbold@robocracy.org> | 2010-07-19 00:38:00 -0400 |
commit | 432cf91f7d61b3d0642609a33c683388de626e32 (patch) | |
tree | f2e496e82d57a9f5fc3323386910f1942e0e5f4e /libmaple/usart.c | |
parent | a852f8d6a62d5e94afd7092c64c242ab4d5a1c60 (diff) | |
download | librambutan-432cf91f7d61b3d0642609a33c683388de626e32.tar.gz librambutan-432cf91f7d61b3d0642609a33c683388de626e32.zip |
added Serial.flush()
Diffstat (limited to 'libmaple/usart.c')
-rw-r--r-- | libmaple/usart.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/libmaple/usart.c b/libmaple/usart.c index 717a9d8..282fc5d 100644 --- a/libmaple/usart.c +++ b/libmaple/usart.c @@ -209,6 +209,9 @@ void usart_disable(uint8 usart_num) { /* Disable UE */ port->CR1 = 0; + + /* Clean up buffer */ + usart_clear_buffer(usart_num); } @@ -308,6 +311,26 @@ uint32 usart_data_available(uint8 usart_num) { return rb->tail - rb->head; } +void usart_clear_buffer(uint8 usart_num) { + usart_ring_buf *rb; + + switch (usart_num) { + case 1: + rb = &ring_buf1; + break; + case 2: + rb = &ring_buf2; + break; + case 3: + rb = &ring_buf3; + break; + default: + ASSERT(0); + } + + rb->tail = rb->head; +} + /** |