我做一个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编辑过] |