在线时间2029 小时
UID267320
注册时间2011-3-7
NXP金币1830
TA的每日心情 | 怒 4 天前 |
---|
签到天数: 2116 天 [LV.Master]伴坛终老
金牌会员
- 积分
- 24823
- 最后登录
- 2024-4-30
|
发表于 2018-11-23 11:04:20
|
显示全部楼层
S32K144的CAN中断我是这样配置的,目前进入中断正常:
//**********************以下是关于CAN的宏定义*****************
//定义CAN的一些参数
#define TX1_MAILBOX (1UL) //CAN1发送邮箱号1
#define TX1_MSG_ID (1UL) //CAN1发送ID号1
#define RX1_MAILBOX (0UL) //CAN1接收邮箱号0
#define RX1_MSG_ID (1911UL) //CAN1接收ID号1 接收BMS从控消息,ID:0x777,标准帧
#define TX2_MAILBOX (3UL) //CAN2发送邮箱号3
#define TX2_MSG_ID (403105268UL) //CAN2发送ID为0x1806E5F4
#define RX2_MAILBOX (2UL) //CAN2接收邮箱号为2
#define RX2_MSG_ID (419385573UL) //CAN2接收ID号为0x18FF50E5
//**********************以下是关于CAN的初始化*****************
//两路CAN初始化
FLEXCAN_DRV_Init(INST_CANCOM1, &canCom1_State, &canCom1_InitConfig0);
FLEXCAN_DRV_ConfigRxMb(INST_CANCOM1,RX1_MAILBOX, &dataInfo1,RX1_MSG_ID);
FLEXCAN_DRV_SetRxIndividualMask(INST_CANCOM1,FLEXCAN_MSG_ID_STD,RX1_MAILBOX,0x00000u); //标准ID,扩展ID更换FLEXCAN_MSG_ID_STD参数即可。
FLEXCAN_DRV_InstallEventCallback(INST_CANCOM1,(flexcan_callback_t)can_Callback,NULL);
FLEXCAN_DRV_Receive(INST_CANCOM1,RX1_MAILBOX,&CanRecvData1);
//CAN2
FLEXCAN_DRV_Init(INST_CANCOM2, &canCom2_State, &canCom2_InitConfig0);
FLEXCAN_DRV_ConfigRxMb(INST_CANCOM2,RX2_MAILBOX,&dataInfo2,RX2_MSG_ID); //配置CAN2
FLEXCAN_DRV_SetRxIndividualMask(INST_CANCOM2,FLEXCAN_MSG_ID_EXT,RX2_MAILBOX,0x00000u);
FLEXCAN_DRV_InstallEventCallback(INST_CANCOM2,(flexcan_callback_t)can_Callback2,NULL);
FLEXCAN_DRV_Receive(INST_CANCOM2,RX2_MAILBOX,&CanRecvData2);
//**********************以下是关于CAN的中断回调函数*****************
/**********************************************************************************************************
*函 数 名: CAN1MsgHandle
*功能说明: CAN消息接收处理函数,主要用来解析接收到的从控发来的数据
*形 参: CanRecvData为接收到的消息结构体
*返 回 值: 无
**********************************************************************************************************/
int CAN1MsgHandle(flexcan_msgbuff_t CanRecvData){ //对CAN1接收到的消息进行处理
switch (CanRecvData.msgId) //根据CAN的ID进行分别处理
{
case RX1_MSG_ID: //如果是需要接收到ID
//对某ID的数据帧进行处理
break;
case 2:
break;
default:
break;
}
return 0;
}
|
评分
-
查看全部评分
|