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