论坛元老
 
- 积分
- 5387
- 金钱
- 5387
- 注册时间
- 2017-8-14
- 在线时间
- 248 小时
|
发表于 2020-9-9 09:41:48
|
显示全部楼层
先 打开 CAN的中断
CAN_ITConfig(CAN1,CAN_IT_FMP0,ENABLE); // 启动 CAN1_RX0_IRQn
//与这个 NVIC_InitStructure.NVIC_IRQChannel=CAN1_RX0_IRQn;对应
在在 中断中调用:
extern "C" void CAN1_RX0_IRQHandler(void)//CAN1 FIFO0
{
//STM32有2个3级深度的接收缓冲区:FIFO0和FIFO1
//如果是来自FIFO0的接收中断,则用CAN1_RX0_IRQn中断来处理。
//YXCAN1_EXT_ReceiveMsg(&YXRcvCAN_Msg,0);
#if(Def_CANY1Y2W0>0)
cCW.RcvCANMsg(1,0);
#endif //#if(Def_CANY1Y2W0>0)
}
#if(Def_CANY1Y2W0==2)
extern "C" void CAN2_RX1_IRQHandler(void)//CAN2 FIFO1
{
//YXCAN2_EXT_ReceiveMsg(&YXRcvCAN_Msg,0);
cCW.RcvCANMsg(2,0);
};
#endif |
|