Vuelvo a decirte, si queres enviar un "texto" ( una string ) entonces tenes que enviar VARIOS datos.
la palabra "ejemplo" requiere enviar 7 bytes como minimo.
Es decir deberias enviar:
0x65 0x6a 0x65 0x6d 0x70 0x6c 0x6f
Ahora si solo vas a recibir 1 solo dato ( 1 solo byte ) podes compararlo como lo hiciste en tu codigo, pero va a ser algo asi:
if(valor==0x12)
Es decir lo comparas con un valor decimal (97), hexa (0x61), o un caracter ( 'a' ). Pero no toda una string como hiciste vos.
Si queres enviar un string, y recibirlo sin problemas entonces vas a tener que aprender a usar interrupciones (Que es lo que se deberia hacer SI o SI, pero no te lo obligo). Esto te va a permitir que la recepcion nunca se interrumpa, y cuando ya llegaron todos los valores, o el valor, pongas a uno una bandera para que tu programa comienze a procesar lo que llego.
Asi que, aca queda en vos lo que queres hacer y que vas a enviar/recibir.