Migsantiago muchas gracias por tu apoyo.
Ok, vamos demembrando esta y veremos como va:
1) PLIB_USART_BaudRateSet(USART_ID_2, SYS_CLK_PeripheralFrequencyGet(CLK_BUS_PERIPHERAL_2), 38400);
2) PLIB_USART_HandshakeModeSelect(USART_ID_2, USART_HANDSHAKE_MODE_FLOW_CONTROL);
3) PLIB_USART_OperationModeSelect(USART_ID_2, USART_ENABLE_TX_RX_USED);
4) PLIB_USART_LineControlModeSelect(USART_ID_2, USART_8N1);
5) PLIB_USART_TransmitterEnable(USART_ID_2);
6) PLIB_USART_TransmitterInterruptModeSelect(USART_ID_2, USART_TRANSMIT_FIFO_NOT_FULL);
Vamos por ítems.
1)
PB2DIVbits.ON = 1; //// CLOCK PB2 ENABLE PARA UART
PB2DIVbits.PBDIV = 2; //// DIVIDE LOS 200Mhz ENTRE 2 Y LOGRA 100Mhz
#define BAUDIOS_9600 9600
#define _9600_BAUDIOS (FCY/(4*(unsigned long)BAUDIOS_9600))-1
2) Seteado en 0, aunque no es usado:
RTSMD: Mode Selection for UxRTS Pin bit
1 = UxRTS pin is in Simplex mode
0 = UxRTS pin is in Flow Control mode
3)seteados ambos a 1.
URXEN: Receiver Enable bit
1 = UARTx receiver is enabled. UxRX pin is controlled by UARTx (if ON = 1)
0 = UARTx receiver is disabled. UxRX pin is ignored by the UARTx module
UTXEN: Transmit Enable bit
1 = UARTx transmitter is enabled. UxTX pin is controlled by UARTx (if ON = 1)
0 = UARTx transmitter is disabled. Any pending transmission is aborted and buffer is reset
4) seteado a 0.
PDSEL<1:0>: Parity and Data Selection bits
11 = 9-bit data, no parity
10 = 8-bit data, odd parity
01 = 8-bit data, even parity
00 = 8-bit data, no parity
5)Creo que se está repitiendo, en el caso de estar equivocado, la transmisión si funciona, no en modo interrupción, aun no la uso.
Seteado a 1
UTXEN: Transmit Enable bit
1 = UARTx transmitter is enabled. UxTX pin is controlled by UARTx (if ON = 1)
0 = UARTx transmitter is disabled. Any pending transmission is aborted and buffer is reset
6) No usado ya que no uso transmisión vía interrupción, talvez por alli esté el problema?
PLIB_USART_ReceiverEnable(USART_ID_2);
PLIB_USART_ReceiverInterruptModeSelect(USART_ID_2, USART_RECEIVE_FIFO_ONE_CHAR);
/* Initialize TX interrupt */
7) PLIB_INT_SourceEnable(INT_ID_0, INT_SOURCE_USART_2_TRANSMIT);
8) PLIB_INT_VectorPrioritySet(INT_ID_0, INT_VECTOR_UART2_TX, INT_PRIORITY_LEVEL1);
9) PLIB_INT_VectorSubPrioritySet(INT_ID_0, INT_VECTOR_UART2_TX, INT_SUBPRIORITY_LEVEL0);
/* Initialize RX interrupt */
10) PLIB_INT_SourceEnable(INT_ID_0, INT_SOURCE_USART_2_RECEIVE);
11) PLIB_INT_VectorPrioritySet(INT_ID_0, INT_VECTOR_UART2_RX, INT_PRIORITY_LEVEL1);
12) PLIB_INT_VectorSubPrioritySet(INT_ID_0, INT_VECTOR_UART2_RX, INT_SUBPRIORITY_LEVEL0);
/* Initialize Fault interrupt */
13) PLIB_INT_SourceEnable(INT_ID_0, INT_SOURCE_USART_2_ERROR);
14) PLIB_INT_VectorPrioritySet(INT_ID_0, INT_VECTOR_UART2_FAULT, INT_PRIORITY_LEVEL1);
15) PLIB_INT_VectorSubPrioritySet(INT_ID_0, INT_VECTOR_UART2_FAULT, INT_SUBPRIORITY_LEVEL0);
Items del 7 al 9 no usado aun.
10)
11)
12)
Items del 13 al 15 no usados.
Me pongo con los items no usados.
Gracias mig!!