TI中文支持网
TI专业的中文技术问题搜集分享网站

TM4C123GH6PM串口中断问题

当调用   IntEnable(UART1_BASE)   函数时,就会进入  FaultISR()  死循环。

FPUEnable();
FPULazyStackingEnable();
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_2);
 //设置时钟直接使用外部晶振     
SysCtlClockSet(SYSCTL_SYSDIV_2_5 | SYSCTL_USE_PLL |SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ);    
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART1);    
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
//配置PB0和PB1为串口1引脚    
GPIOPinTypeUART(GPIO_PORTB_BASE, GPIO_PIN_0 | GPIO_PIN_1);     
GPIOPinConfigure(GPIO_PB0_U1RX);    
 GPIOPinConfigure(GPIO_PB1_U1TX);    
 UARTEnable(UART1_BASE);    
 SysCtlPeripheralReset(SYSCTL_PERIPH_UART1);//复位UART1    
 //配置UART0为115200,8-N-1    
 UARTConfigSetExpClk(UART1_BASE, SysCtlClockGet(), 9600,(UART_CONFIG_WLEN_8 |UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE));
  //使能中断    
IntMasterEnable();     
//使能串口中断    
 IntEnable(UART1_BASE);
xyz549040622:

你的中断函数呢,单步调试,看看是从哪句进去的FaultISR()  死循环。FaultISR()中提示是哪个错误,信息不全,无法判断,建议烧官方的程序看看。

san zhang5:

回复 xyz549040622:

谢谢!已经解决了。是常量用错了,应该是IntEnable(int_UART1).

xyz549040622:

回复 san zhang5:

仔细看了看,还真是用错了。我也是粗心大意了,没用心看,经验呀!中断中的中断变量的定义,是在inc/hw_ints.h中定义的,不是在pin_map.h中定义的,我记得你另外的那个帖子中,用的还是正确的,这个就用错了。

赞(0)
未经允许不得转载:TI中文支持网 » TM4C123GH6PM串口中断问题
分享到: 更多 (0)