想要实现一个开发板在CAN总线上,只接受CAN的ID为0x12 与 0X13的数据帧 请问在滤波器中该如何设置
代码如下 ,希望大神在帮忙改一下代码 多谢
CAN_FilterInitStructure.CAN_FilterNumber=0;
CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;
CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit;
CAN_FilterInitStructure.CAN_FilterIdHigh=0x0000;
CAN_FilterInitStructure.CAN_FilterIdLow=0x0000;
CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x0000;
CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0000;
CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_Filter_FIFO0;
CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;
CAN_FilterInit(&CAN_FilterInitStructure);
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
授人以鱼不如授人以渔,自己换算下填进去吧
标准id 扩展id除11位剩余 IDE RTR 空
FilterMask=11111111110 000000000000000000 1 1 0 32位二进制
FilterId =0000001001x xxxxxxxxxxxxxxxxxxxx 0 0 x 32位二进制 x随意
FilterMask为1的位必须匹配 0不关心 所以进来的一定是0000001001x xxxxxxxxxxxxxxxxxxxx 0 0 x (x随意 )
即:id=00000010010 00000010011 0x12 0x13 的IDE=0标准帧 RTR=0数据帧
一周热门 更多>