首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

UART接收中断

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编辑过]

已经解决!
请问怎么解决的呢?急需你的回答
返回列表