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