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中断了,不知道这个是否有影响?
Yale Li:
Hi Yue Gu,
您使用的是哪个例程?