您们好,请帮忙看一下我在测试CAN通信的时候遇到一个问题。
我在测试CAN通信的时候,我设置了定时中断函数,轮询CanaRegs.CAN_INT.bit.INT0ID的方式更新数据,然后当我使用邮箱1-19的时候,CAN接收发送都是正常。
但是我是用到邮箱20或以上时,就无法触发CanaRegs.CAN_INT.bit.INT0ID,无法进入CAN处理程序去更新接收或者发送的数据。
请问用邮箱20或以上时,无法触发CanaRegs.CAN_INT.bit.INT0ID标准位吗?有什么其他办法可以解决吗? 谢谢!
另外测试的时候发现了一个问题,我刚开始配置掩码为0x1FFFFFFF时,邮箱19也没办法触发CanaRegs.CAN_INT.bit.INT0ID. 但是修改为0xFFFFFFFF时,使用邮箱19就可以触发CanaRegs.CAN_INT.bit.INT0ID,但是20以上的邮箱还是无法使用。
CAN初始化代码:
void CanInit(void)
{
CAN_initModule(CAN_BASE);
CAN_enableInterrupt(CAN_BASE, CAN_INT_IE0 | CAN_INT_ERROR);
sCANAMailboxConfig();
CAN_startModule(CAN_BASE);
}