Existe um flag que é setado quando um dado valido é recebido. Aconselho usar interrupção, pois os PICs geralmente só tem 2 Bytes no buffer no RX, contra os 64 Bytes do arduino, se não ficar atento a isso, perde dados fácil fácil. Qual pic e compilador que esta usando?