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.