写了LPC2368 的UART2的 代码,可就是进不了中断 代码如下: //中断部分
void __irq IRQ_UART2 (void) { static INT8U i; if ((U2IIR & 0x0F) == 0x04) // 设置接收到新的数据标志 // { if(i<10) { rcvbuf2 = U2RBR; // 读取FIFO的数据,并清除中断 // i+=1; if(i==10) { i=0; rcv_new = 1; } } } U2IER = 0x00;//进中断后暂时关闭中断 VICVectAddr = 0x00; // 中断处理结束 // }
********************************************************************************************************* * 函数名称: UART2Init( INT32U baudrate ) * 描 述: 串口初始化,设置为8位数据位,1位停止位,无奇偶校验,波特率4800 * 入口参数: * 出口参数: * 编 写 人: * 编写日期: * 修改日期: ********************************************************************************************************* */
void UART2Init( INT32U baudrate ) { INT16U Fdiv; PINSEL0 =(PINSEL0&0xff0fffff )|0x00500000; /* RxD2 and TxD2 */ U2LCR = 0x83; /* DLAB=1,允许设置波特率 */ Fdiv = (Fpclk / 16) / baudrate; /* 设置波特率 */ U2DLM = Fdiv / 256; U2DLL = Fdiv % 256; U2LCR = 0x03; //2007年5月30号更改,禁止使能FIFO //U0FCR = 0x01; // 使能FIFO,并设置触发点为1字节 /// U2FCR=0x01; U2IER = 0x01; VICIntSelect = 0x00; VICVectCntl2 = 0x20 | 0X1C; // UART0分配到IRQ slot0,即最高优先级// VICVectAddr2 = (INT32U)IRQ_UART2; VICIntEnable =1<<28;//使能UART0中断 }
|