在线时间130 小时
UID2106909
注册时间2014-7-2
NXP金币0
该用户从未签到
高级会员

- 积分
- 747
- 最后登录
- 2023-5-24
|

楼主 |
发表于 2018-12-10 15:00:04
|
显示全部楼层
unsigned int EXP_STD_ID[2]={0x0001,0x0002}; //接收标识符为0x0001和0x0002的标准标识符帧
unsigned int GRP_STD_ID[2]={0x200,0x210}; //接收标识符在0x200到0x210之间的标准帧标识符
unsigned int EXP_EXT_ID[2]={0x1F40F298,0x1F40F297}; //接收标识符为0x100000和0x100001的扩展标识符帧
unsigned int GRP_EXT_ID[2]={0x200000,0x200010}; //接收标识符在0x200000到0x200010之间的扩展帧标识符
/*********************************************************************************************************
** Functoin name: CAN_SetACCF_Lookup
** Descriptions: 设置滤波器
** input paraments: 无
** output paraments: 无
** Returned values: 无
*********************************************************************************************************/
void CAN_SetACCF_Lookup( void )
{
uint32_t address = 0;
uint32_t ID_high, ID_low;
LPC_CANAF->SFF_sa = address; //设置单个标准帧标识符表格地址
ID_low = (0 << 29) | (EXP_STD_ID[0] << 16);
ID_high = ((0) << 13) | (EXP_STD_ID[1] << 0);
*((volatile uint32_t *)(LPC_CANAF_RAM_BASE + address)) = ID_low | ID_high;
address += 4;
LPC_CANAF->SFF_GRP_sa = address; //设置标准帧组标识符表格地址
ID_low = (0 << 29) | (GRP_STD_ID[0] << 16);
ID_high = ((0) << 13) | (GRP_STD_ID[1] << 0);
*((volatile uint32_t *)(LPC_CANAF_RAM_BASE + address)) = ID_low | ID_high;
address += 4;
LPC_CANAF->EFF_sa = address; //设置单个扩展帧标识符表格地址
ID_low = (0 << 29) | (EXP_EXT_ID[0] << 0);
*((volatile uint32_t *)(LPC_CANAF_RAM_BASE + address)) = ID_low;
address += 4;
ID_low = (0 << 29) | (EXP_EXT_ID[1] << 0);
*((volatile uint32_t *)(LPC_CANAF_RAM_BASE + address)) = ID_low;
address += 4;
LPC_CANAF->EFF_GRP_sa = address; //设置扩展帧组标识符表格地址
ID_low = (0 << 29) | (GRP_EXT_ID[0] << 0);
*((volatile uint32_t *)(LPC_CANAF_RAM_BASE + address)) = ID_low;
address += 4;
ID_low = (0 << 29) | (GRP_EXT_ID[1] << 0);
*((volatile uint32_t *)(LPC_CANAF_RAM_BASE + address)) = ID_low;
address += 4;
LPC_CANAF->ENDofTable = address; //设置AF表结束地址
return;
}
unsigned int EXP_EXT_ID[2]={0x1F40F298,0x1F40F297}; 这个扩展帧里面放两个就只能匹配一个,
unsigned int EXP_EXT_ID[2]={0x100000,0x100001};放0x100000和0x100001这两个都能匹配
不知道为啥 |
|