我是想通过UART2接收外面传感器的数据,再通过UART2发送给UART5打印出来数据,结果中断服务函数一直进不去。
UART2配置如下
step by step:
楼主,
因为不知道你用芯片的具体型号,所以假定管脚设置应该没错,但是看你初始化程序中注释掉的那些应该是需要的。
一般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);
chuan fang:
回复 step by step:
问题已破,谢谢。不过还有一点疑惑,我现在用得是16M系统频率,如果提到80M的话,UART分频系数改为8,波特率除数也得做改动了啊,然而闭源函数ROM_UARTConfigSetExpClk这怎么办?
我现在用得是LM4F232H5QD,跟TM4C123GH有什么差别吗?
step by step:
回复 chuan fang:
楼主,
ROM_UARTConfigSetExpClk()函数中间的参数就有当前主频以及你想获得的波特率,函数自己回去运算得到分频值的。LM4F232H5QD对应的Tiva新的料号为TM4C123GH6PGE
Wellin Zhang:
回复 chuan fang:
另外补充一点。所有的Tivaware是开源的,ROM_只是表示该库函数固化在ROM中。 其源代码与driverlib/urat.c是一样的。
TI中文支持网
