This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28075: CAN通信无法进入中断

Part Number: TMS320F28075

专家好:

我想使用CANB来实现发送数据后进入CANB0中断,但是示波器在观察到输出后,却没有进入相应的中断,相应的PIEIER被指置位,但PIEIFR却没有变化,想请问下可能是什么原因呢?

初始化程序如下


CAN_initModule(CANB_BASE);

CAN_setBitRate(CANB_BASE, DEVICE_SYSCLK_FREQ, 500000, 8);

CAN_enableGlobalInterrupt(CANB_BASE, CAN_GLOBAL_INT_CANINT0);

CAN_enableInterrupt(CANB_BASE, CAN_INT_IE0 | CAN_INT_ERROR);

CAN_setupMessageObject(CANB_BASE, TX_MSG_OBJ_ID_MASTER, MSG_BETWWEN_MASTER_S1, CAN_MSG_FRAME_STD, CAN_MSG_OBJ_TYPE_TX, 0, CAN_MSG_OBJ_TX_INT_ENABLE, 4);

观察到的寄存器如下

但在B0中断里,程序运行后会首先进入CAN_INT_INT0ID_STATUS,代码如下

if(CAN_INT_INT0ID_STATUS == ulCanIsrCause)
{
ulCanErrStatus = CAN_getStatus(CANB_BASE);

if(CAN_STATUS_BUS_OFF == ulCanErrStatus)
   {

   }
}

通过添加计数器的方式,可以看到这个CAN_INT_INT0ID_STATUS对应的中断只进入了一次,后面就再没有进入B0中断了,不知道这个是否有影响?