TODOPIC
Microcontroladores PIC => dsPIC => Mensaje iniciado por: tougteno 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());