From fad04330deb4b20fc7a4ebfeb3b80d38f8edfd55 Mon Sep 17 00:00:00 2001 From: Kirill Kurshakow Date: Tue, 27 Feb 2024 14:01:42 +0300 Subject: [PATCH] added clear_buffer --- UART/circular_buf.c | 2 +- UART/circular_buf.h | 2 +- UART/uart.c | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/UART/circular_buf.c b/UART/circular_buf.c index e1b91c7..b7308f3 100644 --- a/UART/circular_buf.c +++ b/UART/circular_buf.c @@ -3,7 +3,7 @@ #include "circular_buf.h" -void initialize_buffer(struct circular_buffer* cb) { +void clear_buffer(struct circular_buffer* cb) { cb->buf_head = 0; cb->buf_tail = 0; } diff --git a/UART/circular_buf.h b/UART/circular_buf.h index 22dc139..ca6c638 100644 --- a/UART/circular_buf.h +++ b/UART/circular_buf.h @@ -9,7 +9,7 @@ struct circular_buffer{ unsigned char buf_tail; }; -void initialize_buffer(struct circular_buffer* cb); +void clear_buffer(struct circular_buffer* cb); int buffer_empty(const struct circular_buffer* cb); int buffer_full(const struct circular_buffer* cb); void write_buffer(struct circular_buffer* cb, int value); diff --git a/UART/uart.c b/UART/uart.c index 1b31d04..1e400f2 100644 --- a/UART/uart.c +++ b/UART/uart.c @@ -24,6 +24,7 @@ void UART_send(uint8_t* data, size_t length) { } } UCSR0B |= (1 << TXCIE0); // включаем прерывание по завершении передачи + clear_buffer(&uartTxBuffer); } // Получение данных из буфера @@ -41,6 +42,7 @@ int UART_receive(uint8_t* data, size_t length) { if (byteCount > length) { overflow = 1; } + clear_buffer(&uartRxBuffer); return overflow ? -1 : byteCount; // Возвращает количество успешно принятых байт или -1 в случае переполнения }