Part Number:TMS320F280039C
您们好,请帮忙看一下我在测试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);
}
Green Deng:
你好,这个问题我需要跟其他工程师沟通一下之后再给你回复,不过期间又涉及周末,周期会有的长,还请耐心等待。
,
Green Deng:
你好,能否检查一下是否正在写入CAN_IP_MUX21寄存器? 确保在寄存器 CAN_IP_MUX21 中为 CANINT0 线设置了所有邮箱号 20 及以上。