I'm working on porting an MSP430 application to the MSP432, and when I call UART_transmitData() the function hangs on the following while loop condition:
while (!BITBAND_PERI(EUSCI_A_CMSIS(moduleInstance)->IFG, EUSCI_A_IFG_TXIFG_OFS))
;
I am using DMA to transmit the data, so the UART transmit interrupt is disabled, while the DMA interrupt is enabled. The UART_transmitData() call is apparently there to initiate the process.
The comment says "if interrupts are not used, poll for flags", so it looks like an interrupt flag is not getting set that should get set, but a more comprehensive explanation of what that condition means would be helpful. I'm tempted to take that condition out altogether and create my own UART_transmitData() function, but I'd like to better understand what it does so I can weigh the consequences.
Also, is there a workaround or a better approach to using the DMA to transmit the data?
Thanks