Problema Lettura risposta modbus

leo72:
Questo è il pezzo di codice che ho messo prima di iniziare la ricezione, che uso per svuotare il buffer:

    if (RS485) { //passo in RX

while (!(UCSR0A & (1 << TXC0))); //attendo che il buffer TX si svuoti
        flushSerial(); //svuoto il buffer RX
        digitalWrite(RXTX_RS485, RS485RX);
    }






if (RS485) { //torno in TX
        UCSR0A |= (1 << TXC0); //imposto il buffer TX come vuoto (1-->resetta il bit)
        digitalWrite(RXTX_RS485, RS485TX);
    }




flushSerial è questo:


//svuoto il buffer in ricezione della seriale
void flushSerial() {
    while (Serial.available()) {
        byte temp = Serial.read();
    }
}

Chi mi spiega come funziona questo codice? Nello specifico cosa fa?