我做一个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编辑过]
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |