Hi,
I have initialised UART0 like this...
ROM_GPIOPinConfigure(GPIO_PA0_U0RX); //set up pins PA0 and PA1 for UART use
ROM_GPIOPinConfigure(GPIO_PA1_U0TX);
ROM_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
ROM_SysCtlPeripheralReset(SYSCTL_PERIPH_UART0);
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0); //enable the UART peripheral and clock
ROM_UARTDisable(UART0_BASE); //disable while we set it up
ROM_UARTConfigSetExpClk(UART0_BASE, ROM_SysCtlClockGet(), 115200, UART_CONFIG_WLEN_8 | UART_CONFIG_PAR_NONE | UART_CONFIG_STOP_ONE);
ROM_UARTFIFOLevelSet(UART0_BASE, UART_FIFO_TX4_8, UART_FIFO_RX1_8); //set interrupt levels
ROM_UARTFIFOEnable(UART0_BASE); //enable hardware fifo
ROM_UARTIntDisable(UART0_BASE, 0xFFFFFFFF); //clear the mask reg
ROM_UARTIntClear(UART0_BASE, ROM_UARTIntStatus(UART0_BASE, false)); //clear int flags
ROM_UARTTxIntModeSet(UART0_BASE, UART_TXINT_MODE_FIFO); //TX int on fifo less than LevelSet
ROM_UARTIntEnable(UART0_BASE, UART_INT_RX); //set mask reg to enable rx ints
ROM_IntEnable(INT_UART0); //enable uart interrupts
ROM_UARTEnable(UART0_BASE); //enable UART
then after all my inits I have
ROM_IntMasterEnable(); //enable interrupts master
if I then put
ROM_UARTIntEnable(UART0_BASE, UART_INT_TX); //unmask tx ints
I would expect to get a TX interrupt immediately - but I don't get any, ever.
Can anyone see why not?
The RX interrupts work perfectly and the TX works fine if I simply use UARTCharPut()
Thanks
Richard