在我用到CAN2的时候我遇到了这个问题,芯片手册上告诉我CAN2RX的外设引脚可以选择为
D9,G6,B8,B15,D4,E3,B7.
我是这样配置的:
TRISDbits.TRISD9 = 1;C2RXR = 0;
// TRISGbits.TRISG6 = 1;C2RXR = 1;
// TRISBbits.TRISB8 = 1;C2RXR = 2;
// TRISBbits.TRISB15 = 1;C2RXR = 3;
// TRISDbits.TRISD4 = 1;C2RXR = 4;
// TRISEbits.TRISE3 = 1;C2RXR = 5;
// TRISBbits.TRISB7 = 1;C2RXR = 6;
TRISDbits.TRISD5 = 0;RPD5R = 15;
C2CONbits.REQOP = 2;//配置为环回模式
while(C2CONbits.OPMOD!=2);//等待环回模式配置完毕
如上,在我把CAN2RX配置在D9引脚上时,C2CONbits.OPMOD状态位的值会变为相应的模式的值,而在我把它配置在上述其他引脚上时,程序就会卡在 while(C2CONbits.OPMOD!=2);这一步,观察C2CONbits.OPMOD状态位的值一直为4(也就是还在配置状态),在这个问题上困扰2天了 |