Collegamento half duplex per RS485.

Ciao a tutti. Devo realizzare una connessione half duplex per una rete di Arduino con i 75176. Ho utilizzato un pin per la commutazione tra ricezione e trasmissione e il pin 0 e 1 per i dati in RX e TX. Utilizzo il comando Serial.print() per trasmettere i dati settando a 1 il pin che stabilisce la direzione dei dati e poi lo resetto a 0 dopo il comando Serial.print(). Esempio

void TxMsg(msg)
{
Serial.flush();
digitalWrite(Pin_dir, HIGH);
Serial.println(msg);
digitalWrite(Pin_dir, LOW);
}

Dato che il comando Serial.print() utilizza la USART del ATmega328 l'esecuzione passa all'istruzione successiva, prima ancora che tutti i dati sono trasmessi, causando problemi. Qualcuno sa come fare per testare la fine della trasmissione, ad esempio leggendo qualche registro interno?. Spero di essere stato chiaro.
Ciao

Trovato!!!

void rs485TxMsg(char *msg)
{
UCSR0A=UCSR0A |(1 << TXC0);
Serial.flush();
digitalWrite(dir_pin, HIGH);
Serial.print(msg);
while (!(UCSR0A & (1 << TXC0))); // attendi fine trasm.
digitalWrite(dir_pin, LOW);
}

non capisco bene ma chiamare fush() prima di mandare giu il bIt?
in modo da scaricare la porta...

digitalWrite(dir_pin, HIGH);
Serial.print(msg);
Serial.flush();
delay(30);
digitalWrite(dir_pin, LOW);

e poi UNA CODA DI DATI cioe un BUFFER fatto a coda in cui creo il mio msg e poi lo svuoto di brutto e chiamo FLUSH????