主题中讨论的其他器件:AM2634
工具与软件:
我目前使用 AM2634开发板并使用 MCAL CAN 模块。 最初、我使用轮询模式、它运行起来没有问题。 稍后、我想尝试中断模式、但在执行以下代码以发送数据后、它第一次只成功发送数据、无法进入中断处理程序。 您能否帮助我确定我的配置中可能缺少什么? 谢谢你。
此外、我使用 MCAL 版本 MCAL_AM263X_10.00.00。
MCAN 的配置如下所示。




下面是我的代码:
void CanExample_InterruptConfig(void)
{
vimInit();
Vim_IntCfg Can_IntCfg;
Can_IntCfg.map = VIM_INTTYPE_IRQ;
Can_IntCfg.type = VIM_INTTRIGTYPE_LEVEL;
Can_IntCfg.intNum = MCAN0_MCAN_LVL_INT_0;
Can_IntCfg.intNum = MCAN0_MCAN_LVL_INT_0;
Can_IntCfg.handler = Can_0_Int0ISR;
Can_IntCfg.priority = VIM_PRIORITY_0;
vimRegisterInterrupt(&Can_IntCfg);
}
Mcu_Init(&McuModuleConfiguration);
Mcu_InitClock(McuConf_McuClockSettingConfig_McuClockSettingConfig_MCAN0);
while ( MCU_PLL_LOCKED != Mcu_GetPllStatus() )
{
/* wait until all enabled PLLs are locked */
}
Mcu_DistributePllClock();
Port_Init(&PortConfigSet_0);
Can_Init(&CanConfigSet);
Can_SetControllerMode(0, CAN_CS_STARTED);
CanExample_InterruptConfig();
vimEnableInterrupt(MCAN0_MCAN_LVL_INT_0);
// Send data
while(1){
while(writerCounter < 100000){
writerCounter++;
}
writerCounter = 0;
ret = Can_Write(CAN_HTRH_0,&pdu);
}
此外、我在运行时包含了一些寄存器值。 MCAN 中断似乎已启用并被触发。


