Yo opino que si vas a hacer una UART por soft, a no ser que tu programa solo este leyendo el pin constamente y no haga absolutamente nada, o lo que vaya a hacer se encuentre medido perfectamente para que nunca pueda perder un bit o coincida que cada lectura sea en un punto especifico de tiempo (codigo a ejecutar = tiempo definido ), sino tendrias problemas.
Tambien si no haces nada y recibis, podes tener problemas si no sos el maestro, ya que si recibis un dato en cualquier momento y tu programa justo pasaba de la lectura del pin puede que te pierdas un bit o mas, o tal ves ninguno.
Lo mas seguro vas a tener que usar algun timer e interrupciones de flanco.