我现在吧arm当单片机用,不加超作系统,用串口传送数据,现在出现的情况是进串口中断接受数据以后程序不返回中断前的函数,而每次都返回到了延时程序,请大家帮我看看啊!串口接受和发送的数据是正确的,我用查询发送,中断接收。
谢谢
初始化程序
void Uart_Init(int mclk,int baud) { int i; if(mclk==0) mclk=MCLK; rUFCON0=0x0; //FIFO disable rUFCON1=0x0; rUMCON0=0x0; rUMCON1=0x0; //UART0 rULCON0=0x3; //Normal,No parity,1 stop,8 bit rUCON0=0x245; //rx=edge,tx=level,disable timeout int.,enable rx error int.,normal,interrupt or polling rUBRDIV0=( (int)(mclk/16./baud + 0.5) -1 );
//UART1 rULCON1=0x3; rUCON1=0x245; rUBRDIV1=( (int)(mclk/16./baud + 0.5) -1 ); rINTCON=0x5; //Non-vectored,IRQ enable,FIQ disable rINTMOD=0x0; //All=IRQ mode
pISR_URXD0=(unsigned)Uart0_RevInt; pISR_URXD1=(unsigned)Uart1_RevInt; rINTMSK=BIT_GLOBAL; //mask all INT rINTMSK=~(BIT_GLOBAL|BIT_URXD1|BIT_URXD0); //start uart0,uart1 receive INT
for(i=0;i<100;i++); } 中断程序
void __irq Uart0_RevInt(void) { rI_ISPC=BIT_URXD0; //clear pending bit Uart0_RevBuff[Uart0_Count]=RdURXH0(); Uart0_Count++;
}