程序是在keil编译的,现在问题是:<br />串口发送第一个字符给2141,返回正常<br />第二次发送有的时候突然返回应该返回的后,不断地返回0x1<br />有的时候死机.再发也没有反应<br /><br />Vic初始化部份:<br />void VIC_INIT2(void)<br />{<br />VICVectCntl1=0x26;<br />VICVectAddr1 = (INT32U)UART_Handler;<br />VICIntEnable =VICIntEnable | 0x40;<br />}<br />UART初始化部份<br />void Init_UART0(INT32U bps)<br />{ <br /> INT16U Fdiv;<br /> <br /> PINSEL0 = (PINSEL0 & 0xfffffff0) | 0x05; <br /><br /> U0LCR = 0x80; <br /> Fdiv = (Fpclk / 16) / bps; <br /> U0DLM = Fdiv / 256; <br /> U0DLL = Fdiv % 256; <br /> U0LCR = 0x03; <br /> <br /> U0IER = 0x1; <br /> U0FCR = 0x0; <br />}<br /><br />UART中断部份<br />void UART_Handler(void)<br />{<br />INT8U dat;<br />VICVectAddr=0x0;<br />if (4==(U0IIR & 0xf))<br /> {<br /> dat=U0RBR;<br /> UART0_SendByte(dat);<br /> }<br /> UART0_SendByte(0xcd);<br /> UART0_SendByte(U0LSR);<br /> UART0_SendByte(U0IER);<br /> UART0_SendByte(U0IIR);<br />}<br />字节回送部份<br />void UART0_SendByte(INT8U data)<br />{<br />U0THR=data;<br />while((U0LSR & 0x20)==0);<br />}<br /> |
|