STM32F4 can 过滤器设置问题

2019-07-20 22:11发布

各位:
   现在要设置can过滤器只接收ID 0x400 ~ ID 0x415 共22个id的标准数据帧数据
   麻烦问下要如何设置can的过滤器?

现在我只研究出了设置只接收一个id的数据的过滤器设置方式,如下:
[mw_shl_code=c,true]CAN_FilterInitTypeDef  CAN_FilterInitStructure;
       
        //配置过滤器
        CAN_FilterInitStructure.CAN_FilterNumber=0;          //过滤器0
          CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;
          CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit; //32位

          CAN_FilterInitStructure.CAN_FilterIdHigh=(((u32)0x415<<21)&0xffff0000)>>16;                //32位ID
          CAN_FilterInitStructure.CAN_FilterIdLow=(((u32)0x415<<21)|CAN_ID_STD|CAN_RTR_DATA)&0xffff;
          CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0xFFFF;//32位MASK
          CAN_FilterInitStructure.CAN_FilterMaskIdLow=0xFFFF;
       
           CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_Filter_FIFO0;//过滤器0关联到FIFO0
          CAN_FilterInitStructure.CAN_FilterActivation=ENABLE; //激活过滤器0
          CAN_FilterInit(&CAN_FilterInitStructure);//滤波器初始化[/mw_shl_code]

麻烦各位帮忙解答下,谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。