用ZLG提供的ucos模板移植ucos到lpc2220+2Mflash的目标板上,在做串口中断实验时,发送可以通过中断发送,但接收不能进入中断服务程序;<br />void uart0_isr(void)<br />{<br /> uint8 ch = 0;<br /> uint32 i = 0;<br /> uint32 tmp = 0;<br /> uint32 bak = 0;<br /> struct UartStruct *ptr = &U0;<br /> <br />//OSIntEnter();<br /><br /> OS_ENTER_CRITICAL();<br /> onled4();//接收数据时,灯不亮,未进入isr,发送正常<br /> /*中断处理*/ <br /> <br /> VICVectAddr = 0x00;<br /> OS_EXIT_CRITICAL();<br />}<br /><br />void VICInit(void)<br />{<br /> extern void IRQ_Handler(void);<br /> extern void Timer0_Handler(void);<br /> extern void Uart0_Handler(void);<br /><br /> VICProtection = 0;<br /> VICIntEnClr = 0xffffffff;<br /> VICDefVectAddr = (uint32)IRQ_Handler;<br /> <br /> VICVectAddr0 = (uint32)Timer0_Handler;<br /> VICVectCntl0 = (0x20 | 0x04);<br /><br /> VICVectAddr1 = (uint32)Uart0_Handler;//Interrupt source 6<br /> VICVectCntl1 = (0x20 | VICIntSel_UART0);<br /><br /> //VICIntEnable = 1 << 4;<br /> VICIntEnable |= ( (1 << 4) | (1 << 6));<br />}<br /><br />/*串口通信任务*/<br />void task_uart(void *pdata)<br />{<br /> //uint8 buf[10] = {0,1,2,3,4,5,6,7,8,9};<br /><br /><br /> pdata = pdata;<br /><br /> init_uart(UART0,BD9600);<br /> Rcv485_UART0();<br /> Rcv485_UART1();<br /> print("system start!
");<br /><br /> while (1) {<br /> OSTimeDly(10);<br /> rcvdatafrom485(UART0);<br /> LED2Glint();<br /> //print("system start!
");<br /><br /> }<br /><br />}<br />通过计算机向目标板发送数据帧时,根本不能进入中断服务函数,不知道哪里出了问题,初次接触ucos,还请指教<br /> |
|