Tool/software: Code Composer Studio
RX interrupt is only triggered for the last byte. I'm using 115200 baud with 8-N-1. I'm able to transmit with no issues. And I see the received data on my analyzer - not sure why the interrupts are not triggered
Code snippet below:
extern void uart_init(void)
{
gpio_set_peripheral_module_output(UART_TX);
gpio_set_peripheral_module_output(UART_RX);
USCI_A_UART_initParam param = { 0 };
param.selectClockSource = USCI_A_UART_CLOCKSOURCE_SMCLK; //1.04MHz
param.clockPrescalar = 9;
param.firstModReg = 0;
param.secondModReg = 1;
param.parity = USCI_A_UART_NO_PARITY;
param.msborLsbFirst = USCI_A_UART_LSB_FIRST;
param.numberofStopBits = USCI_A_UART_ONE_STOP_BIT;
param.uartMode = USCI_A_UART_MODE;
param.overSampling = 0;
USCI_A_UART_init(USCI_A0_BASE, ¶m);
USCI_A_UART_enable(USCI_A0_BASE);
USCI_A_UART_clearInterrupt(USCI_A0_BASE, USCI_A_UART_TRANSMIT_INTERRUPT_FLAG);
USCI_A_UART_clearInterrupt(USCI_A0_BASE, USCI_A_UART_RECEIVE_INTERRUPT_FLAG);
USCI_A_UART_enableInterrupt(USCI_A0_BASE, USCI_A_UART_RECEIVE_INTERRUPT);
USCI_A_UART_enableInterrupt(USCI_A0_BASE, USCI_A_UART_TRANSMIT_INTERRUPT);
}
#pragma vector=USCI_A0_VECTOR
__interrupt void USCI_A0_ISR(void)
{
switch(__even_in_range(UCA0IV,4))
{
//If RX BUF pending
case 2:
UartRcvBuf[UartRcvBufIndex++] = UCA0RXBUF;
}