STM32 的 CAN总线滤波器设置问题 求大神帮忙

2019-07-20 02:57发布

想要实现一个开发板在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);



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
nashui_sx
2019-07-20 07:08
本帖最后由 nashui_sx 于 2019-3-27 10:45 编辑

授人以鱼不如授人以渔,自己换算下填进去吧                     
                      标准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数据帧


一周热门 更多>