Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
fad04330de |
@ -3,7 +3,7 @@
|
|||||||
#include "circular_buf.h"
|
#include "circular_buf.h"
|
||||||
|
|
||||||
|
|
||||||
void initialize_buffer(struct circular_buffer* cb) {
|
void clear_buffer(struct circular_buffer* cb) {
|
||||||
cb->buf_head = 0;
|
cb->buf_head = 0;
|
||||||
cb->buf_tail = 0;
|
cb->buf_tail = 0;
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ struct circular_buffer{
|
|||||||
unsigned char buf_tail;
|
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_empty(const struct circular_buffer* cb);
|
||||||
int buffer_full(const struct circular_buffer* cb);
|
int buffer_full(const struct circular_buffer* cb);
|
||||||
void write_buffer(struct circular_buffer* cb, int value);
|
void write_buffer(struct circular_buffer* cb, int value);
|
||||||
|
@ -24,6 +24,7 @@ void UART_send(uint8_t* data, size_t length) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
UCSR0B |= (1 << TXCIE0); // включаем прерывание по завершении передачи
|
UCSR0B |= (1 << TXCIE0); // включаем прерывание по завершении передачи
|
||||||
|
clear_buffer(&uartTxBuffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Получение данных из буфера
|
// Получение данных из буфера
|
||||||
@ -41,6 +42,7 @@ int UART_receive(uint8_t* data, size_t length) {
|
|||||||
if (byteCount > length) {
|
if (byteCount > length) {
|
||||||
overflow = 1;
|
overflow = 1;
|
||||||
}
|
}
|
||||||
|
clear_buffer(&uartRxBuffer);
|
||||||
return overflow ? -1 : byteCount; // Возвращает количество успешно принятых байт или -1 в случае переполнения
|
return overflow ? -1 : byteCount; // Возвращает количество успешно принятых байт или -1 в случае переполнения
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user