Board logo

标题: UART接收中断 [打印本页]

作者: kaisy    时间: 2007-8-17 19:52     标题: UART接收中断

我做一个UART接收中断的程序,接收到数据后再发送出去,我将接收部分程序放在中断程序中,发送部分放在main中,能进入中断,但在串口调试工具中接收不到数据。请问是什么地方有问题啊?程序如下:


 volatile int status;
void uart_ISR(void* context,alt_u32 id)
{
 status=IORD_ALTERA_AVALON_UART_STATUS(UART_BASE);
 while (!(status&ALTERA_AVALON_UART_STATUS_RRDY_MSK))
 {
  status=IORD_ALTERA_AVALON_UART_STATUS(UART_BASE);
 }
  IOWR_ALTERA_AVALON_UART_STATUS(UART_BASE,0);
  IOWR_ALTERA_AVALON_UART_CONTROL(UART_BASE,ALTERA_AVALON_UART_CONTROL_RRDY_MSK);
}

int main(void)
{
   IOWR_ALTERA_AVALON_UART_CONTROL(UART_BASE,ALTERA_AVALON_UART_CONTROL_RRDY_MSK);
   alt_irq_register(UART_IRQ,NULL,uart_ISR);
  while(1)
  {
     if ((status&0x80)==0x80)
    {
    data=IORD_ALTERA_AVALON_UART_RXDATA(UART_BASE);
    IOWR_ALTERA_AVALON_UART_TXDATA(UART_BASE,data);
    }
  }
  return 0;
}

后来,我将发送部分程序

  if ((status&0x80)==0x80)
    {
    data=IORD_ALTERA_AVALON_UART_RXDATA(UART_BASE);
    IOWR_ALTERA_AVALON_UART_TXDATA(UART_BASE,data);
    }
放在中断内,在串口调试工具中就可以接收到数据了,不知道是什么原因,请各位帮我看看,多谢了!

[此贴子已经被作者于2007-8-17 19:53:18编辑过]


作者: kaisy    时间: 2007-8-17 20:53

已经解决!
作者: alwayspossess    时间: 2008-1-27 23:51

请问怎么解决的呢?急需你的回答




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0