Autor Tema: Problema con UART1 DSPic30F3013  (Leído 2307 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado tougteno

  • PIC10
  • *
  • Mensajes: 31
Problema con UART1 DSPic30F3013
« en: 25 de Junio de 2012, 22:57:46 »
Hola, estoy teniendo problemas con el módulo UART1, el UART2 funciona correctamente.
Espero que me puedan dar una mano.
Copio parte del código de interés:

...
...
#define  BAUDRATE 9600
#define  BRGVAL   ((FCY/BAUDRATE/16)-1)  // Calcula el SPBRG
...
...
/*********Inicialización de módulo UART1*************/

void inicializar_UART1(void){

unsigned int U1MODEvalue;     
unsigned int U1STAvalue;

CloseUART1();

U1MODEbits.ALTIO = 0;                     // Pines alternativos desactivados

U1MODEvalue = UART_EN & UART_IDLE_CON & UART_DIS_WAKE & UART_DIS_LOOPBACK &
              UART_DIS_ABAUD & UART_NO_PAR_8BIT & UART_1STOPBIT;
               

U1STAvalue =  UART_INT_TX_BUF_EMPTY &         
              UART_TX_PIN_NORMAL &         
              UART_TX_ENABLE &         
              UART_INT_RX_CHAR &
              UART_ADR_DETECT_DIS &   
              UART_RX_OVERRUN_CLEAR;

OpenUART1(U1MODEvalue, U1STAvalue, BRGVAL);  // Puerto preparado

}


/*********Inicialización de módulo UART2*************/

void inicializar_UART2(void){

unsigned int U2MODEvalue;
unsigned int U2STAvalue;

CloseUART2();

U1MODEbits.ALTIO = 0;                     // Pines alternativos desactivados

U2MODEvalue = UART_EN & UART_IDLE_CON & UART_DIS_WAKE & UART_DIS_LOOPBACK &
              UART_DIS_ABAUD & UART_NO_PAR_8BIT & UART_1STOPBIT;

U2STAvalue =  UART_INT_TX_BUF_EMPTY &         
              UART_TX_PIN_NORMAL &         
              UART_TX_ENABLE &         
              UART_INT_RX_CHAR &
              UART_ADR_DETECT_DIS &   
              UART_RX_OVERRUN_CLEAR;

OpenUART2(U2MODEvalue, U2STAvalue, BRGVAL);  // Puerto preparado

}


/*********Inicialización de módulo UART2*************/

void inicializar_UART2(void){

unsigned int U2MODEvalue;
unsigned int U2STAvalue;

CloseUART2();

ConfigIntUART2( UART_RX_INT_DIS &         // Int de recepción desactivada
                         UART_RX_INT_PR6 &         // prioridad Rx nivel 6 
                         UART_TX_INT_DIS &         // Int de transmision desactivada
                         UART_TX_INT_PR2);         // Prioridad del Tx nivel 2

U1MODEbits.ALTIO = 0;                     // Pines alternativos desactivados

U2MODEvalue = UART_EN & UART_IDLE_CON & UART_DIS_WAKE & UART_DIS_LOOPBACK &
                        UART_DIS_ABAUD & UART_NO_PAR_8BIT & UART_1STOPBIT;

U2STAvalue =  UART_INT_TX_BUF_EMPTY &         
                       UART_TX_PIN_NORMAL &         
                       UART_TX_ENABLE &         
                       UART_INT_RX_CHAR &
                       UART_ADR_DETECT_DIS &   
                       UART_RX_OVERRUN_CLEAR;

OpenUART2(U2MODEvalue, U2STAvalue, BRGVAL);  // Puerto preparado

}
...
...
inicializar_UART1();
inicializar_UART2();
...
...
putcUART2(x);
putsUART1(x);
while(BusyUART1());
while(BusyUART2());


 

anything