diff --git a/UART/uart.c b/UART/uart.c index ca0a3da..1b31d04 100644 --- a/UART/uart.c +++ b/UART/uart.c @@ -23,6 +23,7 @@ void UART_send(uint8_t* data, size_t length) { break; // если буфер передачи заполнен, то отправка прерывается } } + UCSR0B |= (1 << TXCIE0); // включаем прерывание по завершении передачи } // Получение данных из буфера @@ -54,5 +55,7 @@ ISR(USART_RX_vect) { ISR(USART_TX_vect) { if (!buffer_empty(&uartTxBuffer)) { UDR0 = read_buffer(&uartTxBuffer); + } else { + UCSR0B &= ~(1 << TXCIE0); // отключаем прерывание, когда все данные отправлены } } \ No newline at end of file