| 
 
| dspic33ev256gm104接收中断进入几次后就不再进入了,不知道为什么,代码如下。 void UART1_Init(void)
 {
 //设置I/O口为数字口
 ANSELBbits.ANSB3 = 0;
 ANSELCbits.ANSC0 = 0;
 //UART TX
 TRISBbits.TRISB3 = 0;                       //设置B3为TX
 RPOR0bits.RP35R = 0b000001;                 //映射uart1,TX至RP35
 //UART RX
 TRISCbits.TRISC0 = 1;                       //设置C0为RX
 RPINR18bits.U1RXR = 0b0110000;              //映射uart1,RX至RP48
 //设置波特率等
 U1MODEbits.STSEL = 0;                       // 1-Stop bit
 U1MODEbits.PDSEL = 0;                       // No Parity, 8-Data bits
 U1MODEbits.ABAUD = 0;                       // Auto-Baud disabled
 U1MODEbits.BRGH = 0;                        // Standard-Speed mode
 
 U1BRG = BRGVAL;                             // Set baud-rate  115200
 //interrupt
 U1STAbits.URXISEL = 0b00;                   //当接收1个字符时时,中断标志置1
 
 IFS0bits.U1RXIF = 0;
 IEC0bits.U1RXIE = 1;
 IPC2bits.U1RXIP = 0b011;
 
 U1MODEbits.UARTEN = 1;                      // Enable UART
 U1STAbits.UTXEN = 1;                        // Enable UART TX
 
 //    TRISCbits.TRISC1 = 0;                       //设置RC1为output
 //    PORTCbits.RC1 = 0;                          //输出为低
 }
 
 
 中断程序如下:
 void __attribute__((interrupt, no_auto_psv)) _U1RXInterrupt(void)
 {
 //    flagg = 1;
 U1TXREG = 0xBB;
 while(!U1STAbits.TRMT);
 IFS0bits.U1RXIF = 0;
 }
 
 
 
 | 
 |