需要使用到双串口单片机,于是选用PIC18F24K22,调试串口EUSART1、EUSART2,但是遇到了个问题,EUSART2死活不接收,进入不了中断接收,EUSART1接收没问题,EUSART2只会发送但不会接收,很无语,两个模块初始化程序都一样的,程序如下,请高手帮忙解决下,谢谢 
 
void Uart_Init1(void)//串口1初始化 
{ 
 
                BAUDCON1|=0b00001000;//波特率控制 ABDOVF RCIDL DTRXP CKTXP BRG16 — WUE ABDEN 
                 
                SPBRG1=0x8a;//低字节  0x069d=2400    0x364=4800 0x1a5=9600 
                SPBRGH1=0x06;//高字节 
                RCSTA1|=0b10110000;//SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 
                TXSTA1|=0b10100000;//CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D 
 
                TRISC7=1;//RX 
                RC6=1; 
                 
                PIE1|=0b00100000;//允许EUSART1 接收中断                 
                INTCON|=0B11000000;//中断控制寄存器 
} 
 
void Uart_Init2(void)//串口2初始化 
{ 
 
                BAUDCON2|=0b00001000;//波特率控制 ABDOVF RCIDL DTRXP CKTXP BRG16 — WUE ABDEN 
                 
                SPBRG2=0x64;//低字节  0x069d=2400    0x364=4800 0x1a5=9600 
                SPBRGH2=0x03;//高字节 
                TXSTA2|=0b10100000;//CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D 
                RCSTA2|=0b10010000;//SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 
                 
                TRISB6=0;//TX 
                TRISB7=1;//RX 
                RB6=1; 
                 
                PIE3|=0b00100000;//EUSART2 接收中断允许位 
         
                INTCON|=0B11000000;//中断控制寄存器 
} 
 
void interrupt HiSir(void)// 
{ 
        unsigned char data; 
   if(RC1IF)//EUSART1 接收中断  串口1发送和接收正常 
    { 
            RC1IF=0; 
        data=RCREG1;//RC1IF=0; 
 
        Send_UART(0xaa); 
        Send_UART(data); 
    } 
 
             
            if(RC2IF)//EUSART2 接收中断  串口2发送正常,接收不到数据,不进入这里中断 
    { 
            RC2IF=0; 
        data=RCREG2;//RC1IF=0; 
 
        Send_UART(0xa1); 
        Send_UART(data); 
    } 
 
} 
 |   
     
  
 |