在线时间61 小时
UID3091481
注册时间2015-1-12
NXP金币25
TA的每日心情 | 无聊 2021-5-27 14:51 |
---|
签到天数: 2 天 连续签到: 1 天 [LV.1]初来乍到
中级会员
 
- 积分
- 298
- 最后登录
- 2025-7-3
|
//定义了4个ID
#define NODE_ID0 0x08000000
#define NODE_ID1 0x10000000
#define NODE_ID2 0x0C000000
#define NODE_ID3 0x18000000
//这里的IDAR该如何设置?
#define CAN_IDAR0
#define CAN_IDAR1
//是否用16位过滤模式
#define CAN_IDMR0 0xFFF8001F
#define CAN_IDMR1 0XFFF8001F
MSCAN_ConfigType sMSCANConfig = {0};
uint8_t i;
MSCAN_GlobeVaribleInit(MSCAN);
SIM->PINSEL1 &= ~(1<<SIM_PINSEL1_MSCANPS_SHIFT); // CAN_TX on PTC7, CAN_RX on PTC6
sMSCANConfig.sBaudRateSetting.SJW = BAUD_RATE_SJW; //SJW=0
sMSCANConfig.sBaudRateSetting.BRP = 9;
sMSCANConfig.sBaudRateSetting.SAMP = BAUD_RATE_SAMP; // 0
sMSCANConfig.sBaudRateSetting.TSEG1= BAUD_RATE_TSEG1; // 4
sMSCANConfig.sBaudRateSetting.TSEG2= BAUD_RATE_TSEG2; //3
sMSCANConfig.u32IDAR0 = (CAN_IDAR0); //CANIDAR0-3
sMSCANConfig.u32IDAR1 = (CAN_IDAR1); //CANIDAR4-7
sMSCANConfig.u32IDMR0 = (CAN_IDMR0); //CANIDMR0-3
sMSCANConfig.u32IDMR1 = (CAN_IDMR1); //CANIDMR4-7
sMSCANConfig.u8IDARMode = ID_ACCEPT_MODE_FOUR16; /* 四个16位ID模式 */
sMSCANConfig.sSetting.bCanEn = 1;//CAN module enable
sMSCANConfig.sSetting.bCLKSRC = 1;//clock source is bus clock:20Mhz 0:external 8Mhz
//sMSCANConfig.sSetting.bLoopModeEn = 1; //loopback enable
sMSCANConfig.sSetting.bRxFullIEn=1;//receive full interrupt request enable
sMSCANConfig.sSetting.bTimerEn=1;// enable internal MSCAN timer
sMSCANConfig.sSetting.bOverRunIEn=1;//overrun interrup enable
sMSCANConfig.sSetting.bStatusChangeIEn=1;//del by xiewei Can status change interrupt enable
//sMSCANConfig.sSetting.bTxEmptyIEn=1;//transmit empty interrupt disable
CAN_Init(MSCAN,&sMSCANConfig);
请问: CAN_IDAR0/CAN_IDAR1及CAN_IDMR0/CAN_IDMR1, 应该如何设置? 请各位懂得来帮个忙啦
最佳答案
烟雨梦 发表于 2017-4-12 09:47
这个我看过,之前做的产品接收两帧,参考的这个文档,现在接收多帧数据,不知如何配置了 ...
请参考这个网友的问题:
https://www.nxpic.org.cn/module/forum/thread-608973-1-1.html ...
|
|