UART Tx deja de funcionar sin UART Rx conectado

0

Entonces, mi problema es que cuando tengo ambos Tx y Rx conectados a un cable FTDI con conexión a tierra también. Cuando tengo ambos cables conectados puedo enviar el mensaje como se esperaba. Pero tan pronto como desconecto el cable Rx, las transmisiones se detienen y tengo que reiniciar el dispositivo para que vuelva a funcionar. Solo reconectando el cable Rx no funciona.

Estoy usando un procesador PIC que transmito y uso Putty para monitorear los datos.

Resumen

  • Todos los cables conectados
  • Enviar datos en un bucle sin fin (funciona bien)
  • Desconecte el cable Rx - > todas las transmisiones se detienen

Por lo que he entendido, no debería necesitar que se conecte el cable Rx ya que el uart está configurado para ser asíncrono. Pero corrígeme si me equivoco.

    
pregunta user3660570

1 respuesta

1

Puede ser que la Interrupción de RX entre en un bucle infinito de interrupciones no manejadas o se produzca un error de saturación o de trama. Para protegerse contra eso, vacíe el búfer de recepción y reinicie el UART si esto ocurre. es decir, poner esto en el código RXInterrupt

if (PIR1bits.RC1IF)
{
  PIR1bits.RC1IF = 0;

  if ((RCSTAbits.OERR) || (RCSTAbits.FERR))
  {
    // Resets UART
    RCSTAbits.CREN = 0;
    Nop();Nop();Nop();Nop();
    RCSTAbits.CREN = 1;

    // Clears RX Buffer
    RCREG;
    RCREG;
  }
}
    
respondido por el pm101

Lea otras preguntas en las etiquetas