[ZLG-ARM] LPC2220移植ucos串口接收中断进不去

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

re

请确认您的UART串口接收中断是否打开。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

79

主题

331

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部