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.

MSP432WARE: UART Rx interrupt is not generating

Part Number: MSP432WARE


Hello Everyone,

I am working on MSP432P401R EVM board.

Q)UART  Rx interrupt is not generating..

Code Tasted on 12 MHZ, 24 MHZ with possible boud rates.

Before going to my application UART, I tested driver library loop back UART code...But in this example also rx interrupt is generating.

I selected port 3.2 amd 3.3 for uart.

/* DriverLib Includes */
#include "driverlib.h"

/* Standard Includes */
#include <stdint.h>

#include <stdbool.h>

volatile uint8_t TXData = 1;
volatile uint8_t RXData = 0;

const eUSCI_UART_Config uartConfig =
{
EUSCI_A_UART_CLOCKSOURCE_SMCLK, // SMCLK Clock Source
78, // BRDIV = 78
2, // UCxBRF = 2
0, // UCxBRS = 0
EUSCI_A_UART_NO_PARITY, // No Parity
EUSCI_A_UART_MSB_FIRST, // LSB First
EUSCI_A_UART_ONE_STOP_BIT, // One stop bit
EUSCI_A_UART_MODE, // UART mode
EUSCI_A_UART_OVERSAMPLING_BAUDRATE_GENERATION // Oversampling
};


int main(void)
{
/* Halting WDT */
MAP_WDT_A_holdTimer();

/* Selecting P1.2 and P1.3 in UART mode and P1.0 as output (LED) */
MAP_GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P3,
GPIO_PIN2 | GPIO_PIN3, GPIO_PRIMARY_MODULE_FUNCTION);
MAP_GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0);
MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN0);


MAP_PCM_setCoreVoltageLevel(PCM_VCORE1);
CS_setDCOCenteredFrequency(CS_DCO_FREQUENCY_12);   //CS_setDCOCenteredFrequency(CS_DCO_FREQUENCY_24);

 //UCA2STATW=0X0080;


/* Configuring UART Module */
MAP_UART_initModule(EUSCI_A2_BASE, &uartConfig);

/* Enable UART module */
MAP_UART_enableModule(EUSCI_A2_BASE);/* Enabling interrupts */

MAP_UART_enableInterrupt(EUSCI_A2_BASE, EUSCI_A_UART_RECEIVE_INTERRUPT);
MAP_Interrupt_enableInterrupt(INT_EUSCIA2);
MAP_Interrupt_enableSleepOnIsrExit();

while(1)
{
UART_transmitData(EUSCI_A2_BASE, TXData);


MAP_Interrupt_enableSleepOnIsrExit();
MAP_PCM_gotoLPM0InterruptSafe();
}
}

/* EUSCI A2 UART ISR - Echos data back to PC host */
void EUSCIA2_IRQHandler(void)
{

uint32_t status = MAP_UART_getEnabledInterruptStatus(EUSCI_A2_BASE);

MAP_UART_clearInterruptFlag(EUSCI_A2_BASE, status);

if(status & EUSCI_A_UART_RECEIVE_INTERRUPT_FLAG)
{
      RXData = MAP_UART_receiveData(EUSCI_A2_BASE);

    if(RXData != TXData) // Check value
{
     MAP_GPIO_setOutputHighOnPin(GPIO_PORT_P1, GPIO_PIN0);
      while(1); // Trap CPU
}
   TXData++;
    MAP_Interrupt_disableSleepOnIsrExit();
}


}

Where i am doing wrong please tell me.

Is that any configuration is required

**Attention** This is a public forum