有没有朋友用过ls3s8962的uart2?

最近在使用8962增加一个新的串口应用,遇到一个无法解释的问题,各位工程师朋友们帮忙看看有没有遇到过。

原先应用uart0和uart1的时候,这种使能和初始化的方法是没问题的,如下:

//uart1
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART1);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
GPIOPinTypeUART(GPIO_PORTD_BASE, GPIO_PIN_2 | GPIO_PIN_3);

UARTConfigSet(UART1_BASE, 9600, (UART_CONFIG_WLEN_8 |
UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_NONE));
IntEnable(INT_UART1);
UARTIntEnable(UART1_BASE, UART_INT_RX | UART_INT_RT);
UARTEnable(UART1_BASE);

但是,同样的方法,我用在uart2上,如下这样

//uart2 ---2018.5.30增加串口接收从钟信息
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART2);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG);
GPIOPinTypeUART(GPIO_PORTG_BASE, GPIO_PIN_0 | GPIO_PIN_1);
//
UARTConfigSet(UART2_BASE, 9600, (UART_CONFIG_WLEN_8 |
UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_NONE));
IntEnable(INT_UART2);
UARTIntEnable(UART2_BASE, UART_INT_RX | UART_INT_RT);
UARTEnable(UART2_BASE);

方法其实和uart1是完全一样的。但是这样以后程序无法运行,请工程师们帮忙找找原因。

当然,在startup.s中已经定义了uart2中断。

我试过,如果代码只保留到这里:

SysCtlPeripheralEnable(SYSCTL_PERIPH_UART2);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG);
GPIOPinTypeUART(GPIO_PORTG_BASE, GPIO_PIN_0 | GPIO_PIN_1);

程序能运行起来,当然此时串口是不能用的,我只是简单的把后面的代码做了一下隐藏。

但是一旦把这句话

UARTConfigSet(UART2_BASE, 9600, (UART_CONFIG_WLEN_8 |
UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_NONE));

以上这个uart2的参数设置不做隐藏,程序就无法运行了。

难道是uart2跟uart0和uart1的用法不同?

请教各位工程师朋友!我以前没用过uart2.