UART Recepción y conflictos de escritura

0

MCU: Atmega328p

Actualmente estoy aprendiendo comunicación UART, y me encontré con un problema. mira el código de abajo.

void UART_Write_byte(uint8_t data){
    while(!(UCSR0A & (1<<UDRE0)));
    UDR0 = data;
}

uint8_t UART_Read_byte(){
    while(!(UCSR0A & (1<<RXC0)));
    return UDR0;
}

UART_Write_byte(UART_Read_byte());
_delay_ms(1000);

Entonces, a partir de ese pequeño experimento, puedo ver que algún tipo de búfer contiene solo 4 bytes que ingresan a mi UART.

Problema 1: si ejecuto un largo ciclo de escritura, no podré leer datos, porque solo tendré 4 bytes de datos almacenados.

¿Cómo resolver este problema? ¿Debo optimizar mis escrituras, o hay algún otro tipo de solución? porque no veo la manera de expandir un búfer de hardware.

    
pregunta Anton Stafeyev

0 respuestas

Lea otras preguntas en las etiquetas