The UART module with protocol support allows users to perform serial data transfers and
can easily be configured to transmit data. To configure the UART for data transmission,
the Transmit Enable (TXEN) bit of UxCON0 must be set and the MODE[3:0] bits of UxCON0
must be set as ‘0000
’ through ‘0011
’, depending on the
application. The Baud Rate Generator (BRG) must also be configured and can be accessed
using the UxBRG register and the BRGS bits of UxCON0. Data is transmitted via the TX pin
of the microcontroller, which is PPS remappable using the RxyPPS register. The UART
module is enabled by setting the ON bit of UxCON1.
Once the UART module has been initialized as a transmitter, data can be transmitted by writing to the UART Transmit Buffer (UxTXB) register. The UART Transmit Interrupt Flag (UxTXIF) bit is set when UART transmission has been enabled and the UxTXB register is ready to accept data. Example 14-1 demonstrates the initialization of the UART module for data transmission.
void UART_Initialize(){
U1CON0 = 0xA0; // BRGS normal; 8-bit mode; RXEN disabled;
// TXEN enabled
U1CON2 = 0x00; // TXPOL not inverted; FLO off;
U1BRGL = 0x19; // BRGL 25 = 9600 BR @ 1 MHz FOSC
U1BRGH = 0x00;
U1FIFO = 0x00; // STPMD in middle of first Stop bit;
U1UIR = 0x00; // Auto-baud not enabled
U1ERRIR = 0x00;
U1ERRIE = 0x00;
RC6PPS = 0x13; // UART PPS Settings, RC6->UART1:TX1;
U1RXPPS = 0x17; // UART PPS Settings, RC7->UART1:RX1;
U1CON1 = 0x80; // ON enabled;
}