我是想通过UART2接收外面传感器的数据,再通过UART2发送给UART5打印出来数据,结果中断服务函数一直进不去。
UART2配置如下
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我是想通过UART2接收外面传感器的数据,再通过UART2发送给UART5打印出来数据,结果中断服务函数一直进不去。
UART2配置如下
楼主,
因为不知道你用芯片的具体型号,所以假定管脚设置应该没错,但是看你初始化程序中注释掉的那些应该是需要的。
一般uart初始化包括下面几个部分:
管脚初始化;
uart参数设定
uart中断使能
下面是一个初始化的程序,需要自己改下IO口:
//
// Enable the peripherals used by this example.
//
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
//
// Enable processor interrupts.
//
ROM_IntMasterEnable();
//
// Set GPIO A0 and A1 as UART pins.
//
GPIOPinConfigure(GPIO_PA0_U0RX);
GPIOPinConfigure(GPIO_PA1_U0TX);
ROM_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
//
// Configure the UART for 115,200, 8-N-1 operation.
//
ROM_UARTConfigSetExpClk(UART0_BASE, g_ui32SysClock, 115200,
(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_NONE));
//
// Enable the UART interrupt.
//
ROM_IntEnable(INT_UART0);
ROM_UARTIntEnable(UART0_BASE, UART_INT_RX | UART_INT_RT);
问题已破,谢谢。不过还有一点疑惑,我现在用得是16M系统频率,如果提到80M的话,UART分频系数改为8,波特率除数也得做改动了啊,然而闭源函数ROM_UARTConfigSetExpClk这怎么办?
我现在用得是LM4F232H5QD,跟TM4C123GH有什么差别吗?
楼主,
ROM_UARTConfigSetExpClk()函数中间的参数就有当前主频以及你想获得的波特率,函数自己回去运算得到分频值的。LM4F232H5QD对应的Tiva新的料号为TM4C123GH6PGE
另外补充一点。所有的Tivaware是开源的,ROM_只是表示该库函数固化在ROM中。 其源代码与driverlib/urat.c是一样的。