RS232 TRAVA!!!

estou lendo alguns dados pela porta serial do PIC e em alguns casos a porta trava. Tem um flag que reseta a porta alguém sabe como fazer? Estou usando o seguinte código no CCS:
- Código: Selecionar todos
#priority rda
#int_RDA
RDA_isr()
{Int C;
C=GETC();
CLEAR_INTERRUPT(INT_RDA);
IF ( C==17 ) {XON=1;XOFF=0;}
ELSE IF ( C==19 ) {XON=0;XOFF=1;}
ELSE {
IF ( C=='#' ) {P=0;}
IF ( C==13 ) {FLAG_RS232=1;}
Dado[P++]=C;
TAM_BUFFER++;
}
//WATCH_DOG=0;
WATCH_DOG_SLEEP=0;
WATCH_RS232=0;
}