salida uart revuelta

1

Soy nuevo en la comunicación de imágenes con PC mediante RS232. He intentado el siguiente código y utilicé Hyperterminal para ver la salida. Pero la salida se revuelve aquí y allá cada vez que reinicio la imagen. He intentado cambiar los bits de parada de 1 a 0 en el hiperterminal pero la salida sigue siendo la misma. La configuración mantenida en el hiperterminal es

  1. Baudrate 9600
  2. Paridad ninguna
  3. Stopbits 1 & 2 (para ambos la salida permanece igual)
  4. no De bits 8

Estoy usando PIC16F877a y se ha codificado usando el compilador MPLAB XC8 Las salidas están ahí en el archivo adjunto

¿Podría decirme dónde cometí el error?

void main()

{
TRISC = 0x80;
TXSTA=0x24;     
RCSTA=0x90;           
SPBRG=0x81;           
unsigned int i=0;
char name[]="Sample Output";

while(name[i]!='
void main()

{
TRISC = 0x80;
TXSTA=0x24;     
RCSTA=0x90;           
SPBRG=0x81;           
unsigned int i=0;
char name[]="Sample Output";

while(name[i]!='%pre%')
{
  TXREG=name[i];
  while(!TXIF);
  __delay_ms(1000);
  i++;

}
while(1);
}
') { TXREG=name[i]; while(!TXIF); __delay_ms(1000); i++; } while(1); }

    
pregunta Sreez..

1 respuesta

1

Creo que necesita sondear el TRMT del estado del registro de turnos de transmisión en lugar de TXIF. Cuando TRMT == 1 el registro está vacío y está listo para transmitir un byte.

Pero a segunda vista, me doy cuenta de que los caracteres incorrectos siempre están desactivados por el mismo bit en el código ASCII. Cuando un carácter es incorrecto, se supone que el primer bit (orden bajo) en el carácter ASCII es 1, pero se reemplaza con un 0. 'S' se convierte en 'R', 'O' en 'N', 'u' en 't'. Eso parece ser un problema de integridad de la señal en el cable de datos.

Si bien creo que tendrá que sondear el bit TRMT, no creo que su problema actual sea el software. Busque cualquier cosa que pueda afectar la calidad de la conexión del cable.

    
respondido por el Entrepreneur

Lea otras preguntas en las etiquetas