Estou precisando de uma ajudinha com uma experiencia que estou fazendo.
Estou conectando dois PICs via USART mas estou enfrentando problemas de comunicação entre eles, talvez vocês possam me dar uma Luz....

O primeiro é um PIC16F877A com duas UARTs denominadas como STREAM: IHM e dacpic.
O segundo PIC16F628A com um UART sem denominação de STREAM.
O processo é o seguinte: Eu envio uma string do PC para o PIC16F877A que por sua vez repassa essa mesma string sem alteração para o PIC 16F628A que tambem por sua vez ECOA a mesma string de volta para o 877A que tambem por sua vez devolve a string para o PC.
Teoricamente bem simples.
O problema é o seuinte:
Quando envio a String para 877A está é enviada para para o 628A, isto eu comprovei com o auxilio de outro PC "bisbilhotando" a comunicação entre eles.
Quando o 628 responde, envia a string um pouco diferente de volta para o 877A, porem este ultimo não envia nada para o PC....
O codigo feito em CCS segue abaixo:
Trecho do 16F877A:
.
.
.
#use rs232(baud=9600,parity=N,xmit=PIN_D4,rcv=PIN_D5,bits=8, stream=dacpic, ERRORS)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8, stream=IHM, ERRORS)
.
.
.
while(true)
{
while(!kbhit(IHM));
if(kbhit(IHM))
{
fgets(temp,IHM);
fputs(temp,dacpic);
while (!kbhit(dacpic));
if (kbhit(dacpic))
{
fgets(tempdac,dacpic);
fputs(tempdac,IHM);
}
}
}
Lado do PIC16F628A:
#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1,bits=8, ERRORS)
.
.
.
while(true)
{
while(!kbhit());
if (kbhit())
{
gets(code);
puts(code);
}
}
Desde já agradeço a quem puder me ajudar com esse problema