|
我串口初始化程序如下:可是就是无法进入中断发送<br />我已经打开了中断,能进入中断接收数据<br />void Uart0_Init(void)<br />{<br /> uint16 Fdiv;<br /> PINSEL0 = (PINSEL0&0xfffffff0)|0x05; //选择串口<br /> U0LCR = 0x83;<br /> Fdiv = (Fpclk/16)/UART_BPS;<br /> U0DLM = Fdiv/256;<br /> U0DLL = Fdiv%256;<br /> U0LCR = 0x03;<br /><br /> U0FCR = 0x01; //接收一个字符<br /> U0IER = 0x03; //开接收、发送中断 <br /> VICIntSelect = 0x00000000;//设置UART0为IRQ中断,其他中断为IRQ中断<br /> VICVectCntl0=0x26;<br /> VICVectAddr0 =(uint32)Uart0_Receive;<br /> VICIntEnable = 0x00000040;//UART0使能中断<br />}<br /><br />中断程序<br /><br />void __irq Uart0_Receive(void)<br />{<br /> uint8 Re;<br /><br /> if(U0LSR&0x01) //读取数据<br /> {<br /> InBuffer[0]=U0RBR;<br /> U0IER=0x03;<br /> InFlag=1;<br /> }<br /> else if(U0LSR&0x20)//发送数据<br /> {<br /> U0THR=0x54;<br /> U0IER=0x01;<br /> }<br /> VICVectAddr=0;<br /> Re=U0IIR;<br />}<br /> |
|