This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC3200 UART Interrupt problem

Other Parts Discussed in Thread: CC3200SDK, CC3200

Now I use uart1 RX interrupt. UART0 keep the SDK code and it can wok as console.  I can send data by PIN58 and also can get data by PIN57 on UART1. But it always go in FaultISR when i receiver data from UART1.

The following is code.

PinMuxConfig(void)
{
//
// Enable Peripheral Clocks
//
MAP_PRCMPeripheralClkEnable(PRCM_UARTA0, PRCM_RUN_MODE_CLK);
MAP_PRCMPeripheralClkEnable(PRCM_UARTA1, PRCM_RUN_MODE_CLK);

//
// Configure PIN_55 for UART0 UART0_TX
//
MAP_PinTypeUART(PIN_55, PIN_MODE_3);

//
// Configure PIN_57 for UART0 UART0_RX
//
MAP_PinTypeUART(PIN_57, PIN_MODE_3);

//
// Configure PIN_58 for UART1 UART1_TX
//
MAP_PinTypeUART(PIN_58, PIN_MODE_6);

//
// Configure PIN_59 for UART1 UART1_RX
//
MAP_PinTypeUART(PIN_59, PIN_MODE_6);
}

int initUart1(void)
{
uartRxBuff[0] = 0;
uartRxLength = 0;
MAP_UARTConfigSetExpClk(UARTA1_BASE,MAP_PRCMPeripheralClockGet(PRCM_UARTA1),
UART_BAUD_RATE, (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_NONE));
MAP_UARTFlowControlSet(UARTA1_BASE, UART_FLOWCONTROL_NONE);
MAP_UARTFIFODisable(UARTA1_BASE);
MAP_UARTIntRegister(UARTA1_BASE, Uart1IntHandler);
MAP_UARTIntEnable(UARTA1_BASE, UART_INT_RX);
MAP_UARTIntEnable(UARTA1_BASE, UART_INT_RX|UART_INT_RT);
return SUCCESS;
}

void Uart1IntHandler(void)
{
unsigned long intStatus = MAP_UARTIntStatus(UARTA1_BASE, TRUE);
if((intStatus & UART_INT_RX) && MAP_UARTCharsAvail(UARTA1_BASE))
{
uartRxLength++;
uartRxBuff[uartRxLength] = (unsigned char)MAP_UARTCharGetNonBlocking(UARTA1_BASE);
}
else if(intStatus & UART_INT_RT)
{
uartRxBuff[0] = uartRxLength;
uartRxLength = 0;
}
MAP_UARTIntClear(UARTA1_BASE, intStatus);
}

Can anybody tell me what I'm wrong here? Thanks!