Quantcast
Channel: Microcontrollers
Viewing all articles
Browse latest Browse all 216815

Forum Post: MSP432P401R: MSP-EXP432P401R: UART echo back between eUSCI_A0 and eUSCI_A2

$
0
0
Part Number: MSP432P401R Dear all, Via Putty I send some string to "Application/User UART" COM port (eUSCI_A0). Then send this string to eUSCI_A2 and transmit back to eUSCI_A0. But, there is no output from "Application/User UART" COM port. Kindly advise me what is wrong in my code. PS: of course, if i change MAP_UART_transmitData(EUSCI_A2_BASE, MAP_UART_receiveData(EUSCI_A0_BASE)); to MAP_UART_transmitData(EUSCI_A0_BASE, MAP_UART_receiveData(EUSCI_A0_BASE)); then this code works, But I want to echo back thru eUSCI_A2 uart module. ==== My code ====== /* DriverLib Includes */ #include /* Standard Includes */ #include #include //***** Global Variables ****************************************************** uint32_t myDCO = 0; uint32_t myACLK = 0; uint32_t myBCLK = 0; uint32_t myHSMCLK = 0; uint32_t myMCLK = 0; uint32_t mySMCLK = 0; //![Simple UART Config] /* UART Configuration Parameter. These are the configuration parameters to * make the eUSCI A UART module to operate with a 9600 baud rate. These * values were calculated using the online calculator that TI provides at: * software-dl.ti.com/.../index.html * // Baud Rate calculation * // 12000000/(16*9600) = 78.125 * // Fractional portion = 0.125 * // User's Guide Table 21-4: UCBRSx = 0x10 * // UCBRFx = int ( (78.125-78)*16) = 2 */ 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_LSB_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 }; //![Simple UART Config] int main(void) { /* Halting WDT */ MAP_WDT_A_holdTimer(); /* Selecting P1.2 and P1.3 in UART(eUSCA0) mode - GPIO initialization */ MAP_GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P1, GPIO_PIN2 | GPIO_PIN3, GPIO_PRIMARY_MODULE_FUNCTION); /* Selecting P3.2 and P3.3 in UART(eUSCA2) mode - GPIO initialization */ MAP_GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P3, GPIO_PIN2 | GPIO_PIN3, GPIO_PRIMARY_MODULE_FUNCTION); /* Red LED off */ GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0); GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN0); GPIO_setAsOutputPin(GPIO_PORT_P2, GPIO_PIN1); GPIO_setOutputLowOnPin(GPIO_PORT_P2, GPIO_PIN1); /* Setting DCO to 12MHz */ CS_setDCOCenteredFrequency(CS_DCO_FREQUENCY_12); myDCO = MAP_CS_getDCOFrequency(); myACLK = MAP_CS_getACLK(); myBCLK = MAP_CS_getBCLK(); myMCLK = MAP_CS_getMCLK(); myHSMCLK = MAP_CS_getHSMCLK(); mySMCLK = MAP_CS_getSMCLK(); //![Simple UART Example] /* Configuring UART Module */ MAP_UART_initModule(EUSCI_A0_BASE, &uartConfig); MAP_UART_initModule(EUSCI_A2_BASE, &uartConfig); /* Enable UART module */ MAP_UART_enableModule(EUSCI_A0_BASE); MAP_UART_enableModule(EUSCI_A2_BASE); /* Enabling interrupts */ MAP_UART_enableInterrupt(EUSCI_A0_BASE, EUSCI_A_UART_RECEIVE_INTERRUPT); MAP_Interrupt_enableInterrupt(INT_EUSCIA0); MAP_UART_enableInterrupt(EUSCI_A2_BASE, EUSCI_A_UART_RECEIVE_INTERRUPT); MAP_Interrupt_enableInterrupt(INT_EUSCIA2); MAP_Interrupt_enableSleepOnIsrExit(); MAP_Interrupt_enableMaster(); //![Simple UART Example] while(1) { MAP_PCM_gotoLPM0InterruptSafe(); } } /* EUSCI A0 UART ISR - Echoes data back to PC host */ void EUSCIA0_IRQHandler(void) { uint32_t status = MAP_UART_getEnabledInterruptStatus(EUSCI_A0_BASE); MAP_UART_clearInterruptFlag(EUSCI_A0_BASE, status); if(status & EUSCI_A_UART_RECEIVE_INTERRUPT_FLAG) { MAP_UART_transmitData(EUSCI_A2_BASE, MAP_UART_receiveData(EUSCI_A0_BASE)); GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0); } } /* EUSCI A2 UART ISR - Echoes 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) { MAP_UART_transmitData(EUSCI_A0_BASE, MAP_UART_receiveData(EUSCI_A2_BASE)); GPIO_toggleOutputOnPin(GPIO_PORT_P2, GPIO_PIN1); } } ==== My code end =====

Viewing all articles
Browse latest Browse all 216815

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>