在配置CAN的中断的时候
void NVIC_Config_CAN(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
#ifdef USE_CAN1
NVIC_InitStructure.NVIC_IRQChannel = CAN1_RX0_IRQn;
#else /* USE_CAN2 */
NVIC_InitStructure.NVIC_IRQChannel = CAN2_RX0_IRQn;
#endif /* USE_CAN1 */
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
其中 NVIC_InitStructure.NVIC_IRQChannel = CAN1_RX0_IRQn;,
NVIC_IRQChannel 有四个可选取值
CAN1_TX_IRQn
CAN1_RX0_IRQn
CAN1_RX1_IRQn
CAN1_SCE_IRQn
其中设置成
CAN1_RX0_IRQn 和设置成
CAN1_RX1_IRQn 有什么区别
CAN1_SCE_IRQn是什么中断
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
你在MDK中右键一下就会找到那个参数的定义和解释。
CAN1_TX_IRQn 发送中断
CAN1_RX0_IRQn FIFO0中断
CAN1_RX1_IRQn FIFO0中断
CAN1_SCE_IRQn 错误和状态变化中断
而 FIFO0中断和 FIFO1中断的不同就看你把数据放在了那个邮箱里。你使用的是那个FIFO就使能哪个中断。
建议啊:以后遇到问题就去看芯片的参考手册。
---------------------------------
受教了,
一周热门 更多>