ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART1);
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
//
GPIOPinConfigure(GPIO_PB0_U1RX);
GPIOPinConfigure(GPIO_PB1_U1TX);
ROM_IntMasterEnable(); ROM_GPIOPinTypeUART(GPIO_PORTB_BASE, GPIO_PIN_0 | GPIO_PIN_1);
ROM_UARTConfigSetExpClk(UART1_BASE, ROM_SysCtlClockGet(),9600 ,
(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_NONE));
ROM_IntEnable(INT_UART1);
ROM_UARTIntEnable(UART1_BASE,UART_INT_RX);
void
UARTIntHandler(void)
{
uint32_t ui32Status;
UARTSend( "AAAA",4 );//UART0
//
// Get the interrrupt status.
//
ui32Status = ROM_UARTIntStatus(UART1_BASE, true);
//
// Clear the asserted interrupts.
//
ROM_UARTIntClear(UART1_BASE, ui32Status);
UARTSend( "ui32Status IS", 12 );
UART0_send_int64_t((int64_t)ui32Status,1);
//
// Loop while there are characters in the receive FIFO.
//
while(ROM_UARTCharsAvail(UART1_BASE))
{
//
// Read the next character from the UART and write it back to the UART.
//
ROM_UARTCharPutNonBlocking(UART1_BASE,
ROM_UARTCharGetNonBlocking(UART1_BASE));
UART0_send_char( ROM_UARTCharGetNonBlocking(UART1_BASE) );
//
// Blink the LED to show a character transfer is occuring.
//
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2, GPIO_PIN_2);
//
// Delay for 1 millisecond. Each SysCtlDelay is about 3 clocks.
//
SysCtlDelay(SysCtlClockGet() / (1000 * 3));
//
// Turn off the LED
//
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2, 0);
}
}
xyz549040622:
UART0呢,也是这样?参考官方的例程看看,总觉得你的中断函数怪怪的
Michael Sun:
UARTSend这个函数源码是什么?用的哪个串口?初始化了没有?
中断服务程序中好像还有串口0,这个初始化了吗?
串口的初始化和中断,请参考例程:
C:\ti\TivaWare_C_Series-2.1.0.12573\examples\boards\ek-tm4c123gxl\uart_echo
TI中文支持网
