| void MX_CAN1_filter_Init(void) {
 CAN_FilterConfTypeDef  sFilterConfig;
 //======CAN1过滤器 0 初始化======
 sFilterConfig.FilterNumber = 0;                    //过滤器组0
 sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;  //工作在标识符屏蔽位模式
 sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT; //过滤器位宽为单个32位。
 //===使能报文标示符过滤器按照标示符的内容进行比对过滤,扩展ID不是如下的就抛弃掉,是的话,会存入FIFO0。
 sFilterConfig.FilterIdHigh         = (((uint32_t)(0x0A490000 + chouti_ID )<<3)&0xFFFF0000)>>16;                                //要过滤的ID高位
 sFilterConfig.FilterIdLow          = (((uint32_t)(0x0A490000 + chouti_ID )<<3)|CAN_ID_EXT|CAN_RTR_DATA)&0xFFFF; //要过滤的ID低位
 sFilterConfig.FilterMaskIdHigh     = 0x0000;                        //过滤器高16位每位必须匹配
 sFilterConfig.FilterMaskIdLow      = 0x0000;                        //过滤器低16位每位必须匹配
 sFilterConfig.FilterFIFOAssignment = 0;           //过滤器被关联到FIFO 0
 sFilterConfig.FilterActivation = ENABLE;          //使能过滤器
 sFilterConfig.BankNumber = 10;
 HAL_CAN_ConfigFilter(&hcan1, &sFilterConfig);
 
 //          //======CAN1过滤器 1 初始化======
 //  sFilterConfig.FilterNumber = 1;                    //过滤器组0
 //  sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;  //工作在标识符屏蔽位模式
 //  sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT; //过滤器位宽为单个32位。
 //  //===使能报文标示符过滤器按照标示符的内容进行比对过滤,扩展ID不是如下的就抛弃掉,是的话,会存入FIFO0。
 //  sFilterConfig.FilterIdHigh         = (((uint32_t)(0x08C90000 + chouti_ID )<<3)&0xFFFF0000)>>16;                                //要过滤的ID高位
 //  sFilterConfig.FilterIdLow          = (((uint32_t)(0x08C90000 + chouti_ID )<<3)|CAN_ID_EXT|CAN_RTR_DATA)&0xFFFF; //要过滤的ID低位
 //  sFilterConfig.FilterMaskIdHigh     = 0xFFFF;                        //过滤器高16位每位必须匹配
 //  sFilterConfig.FilterMaskIdLow      = 0x8000;                        //过滤器低16位每位必须匹配
 //  sFilterConfig.FilterFIFOAssignment = 0;           //过滤器被关联到FIFO 0
 //  sFilterConfig.FilterActivation = ENABLE;          //使能过滤器
 //  sFilterConfig.BankNumber = 10;
 //  HAL_CAN_ConfigFilter(&hcan1, &sFilterConfig);
 //
 //          //======CAN1过滤器 2 初始化======
 //  sFilterConfig.FilterNumber = 2;                    //过滤器组0
 //  sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;  //工作在标识符屏蔽位模式
 //  sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT; //过滤器位宽为单个32位。
 //  //===使能报文标示符过滤器按照标示符的内容进行比对过滤,扩展ID不是如下的就抛弃掉,是的话,会存入FIFO0。
 //  sFilterConfig.FilterIdHigh         = (((uint32_t)(0x02490000 + chouti_ID )<<3)&0xFFFF0000)>>16;                                //要过滤的ID高位
 //  sFilterConfig.FilterIdLow          = (((uint32_t)(0x02490000 + chouti_ID )<<3)|CAN_ID_EXT|CAN_RTR_DATA)&0xFFFF; //要过滤的ID低位
 //  sFilterConfig.FilterMaskIdHigh     = 0xFFFF;                        //过滤器高16位每位必须匹配
 //  sFilterConfig.FilterMaskIdLow      = 0x8000;                        //过滤器低16位每位必须匹配
 //  sFilterConfig.FilterFIFOAssignment = 0;           //过滤器被关联到FIFO 0
 //  sFilterConfig.FilterActivation = ENABLE;          //使能过滤器
 //  sFilterConfig.BankNumber = 10;
 //  HAL_CAN_ConfigFilter(&hcan1, &sFilterConfig);
 //
 //          //======CAN1过滤器 3 初始化======
 //  sFilterConfig.FilterNumber = 3;                    //过滤器组0
 //  sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;  //工作在标识符屏蔽位模式
 //  sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT; //过滤器位宽为单个32位。
 //  //===使能报文标示符过滤器按照标示符的内容进行比对过滤,扩展ID不是如下的就抛弃掉,是的话,会存入FIFO0。
 //  sFilterConfig.FilterIdHigh         = (((uint32_t)(0X00C90000 + chouti_ID )<<3)&0xFFFF0000)>>16;                                //要过滤的ID高位
 //  sFilterConfig.FilterIdLow          = (((uint32_t)(0X00C90000 + chouti_ID )<<3)|CAN_ID_EXT|CAN_RTR_DATA)&0xFFFF; //要过滤的ID低位
 //  sFilterConfig.FilterMaskIdHigh     = 0xFFFF;                        //过滤器高16位每位必须匹配
 //  sFilterConfig.FilterMaskIdLow      = 0x8000;                        //过滤器低16位每位必须匹配
 //  sFilterConfig.FilterFIFOAssignment = 0;           //过滤器被关联到FIFO 0
 //  sFilterConfig.FilterActivation = ENABLE;          //使能过滤器
 //  sFilterConfig.BankNumber = 10;
 //  HAL_CAN_ConfigFilter(&hcan1, &sFilterConfig);
 //
 //
 //
 
 
 
 
 
 
 }
 
 //=============================================================================
 //函 数 名: void MX_CAN2_filter_Init(void);
 //功 能   : //------   CAN1 滤波程序段 ------
 //入口参数: MX_CAN1_filter_Init( ); //------   CAN1 滤波程序段 ------
 //出口参数: 无
 //返 回 值: 无
 //=============================================================================
 void MX_CAN2_filter_Init(void)
 {
 CAN_FilterConfTypeDef  sFilterConfig;
 
 //======CAN2过滤器 0 初始化======
 sFilterConfig.FilterNumber = 11;                    //过滤器组0
 sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;  //工作在标识符屏蔽位模式
 sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT; //过滤器位宽为单个32位。
 //===使能报文标示符过滤器按照标示符的内容进行比对过滤,扩展ID不是如下的就抛弃掉,是的话,会存入FIFO0。
 sFilterConfig.FilterIdHigh         = (((uint32_t)(0x0A490000 + chouti_ID )<<3)&0xFFFF0000)>>16;                                //要过滤的ID高位
 sFilterConfig.FilterIdLow          = (((uint32_t)(0x0A490000 + chouti_ID )<<3)|CAN_ID_EXT|CAN_RTR_DATA)&0xFFFF; //要过滤的ID低位
 sFilterConfig.FilterMaskIdHigh     = 0xFFFF;                        //过滤器高16位每位必须匹配
 sFilterConfig.FilterMaskIdLow      = 0x8000;                        //过滤器低16位每位必须匹配
 sFilterConfig.FilterFIFOAssignment = 0;           //过滤器被关联到FIFO 0
 sFilterConfig.FilterActivation = ENABLE;          //使能过滤器
 sFilterConfig.BankNumber = 10;
 HAL_CAN_ConfigFilter(&hcan1, &sFilterConfig);
 
 //======CAN2过滤器 1 初始化======
 sFilterConfig.FilterNumber = 12;                    //过滤器组0
 sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;  //工作在标识符屏蔽位模式
 sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT; //过滤器位宽为单个32位。
 //===使能报文标示符过滤器按照标示符的内容进行比对过滤,扩展ID不是如下的就抛弃掉,是的话,会存入FIFO0。
 sFilterConfig.FilterIdHigh         = (((uint32_t)(0x08C90000 + chouti_ID )<<3)&0xFFFF0000)>>16;                                //要过滤的ID高位
 sFilterConfig.FilterIdLow          = (((uint32_t)(0x08C90000 + chouti_ID )<<3)|CAN_ID_EXT|CAN_RTR_DATA)&0xFFFF; //要过滤的ID低位
 sFilterConfig.FilterMaskIdHigh     = 0xFFFF;                        //过滤器高16位每位必须匹配
 sFilterConfig.FilterMaskIdLow      = 0x8000;                        //过滤器低16位每位必须匹配
 sFilterConfig.FilterFIFOAssignment = 0;           //过滤器被关联到FIFO 0
 sFilterConfig.FilterActivation = ENABLE;          //使能过滤器
 sFilterConfig.BankNumber = 10;
 HAL_CAN_ConfigFilter(&hcan1, &sFilterConfig);
 
 //======CAN2过滤器 2 初始化======
 sFilterConfig.FilterNumber = 13;                    //过滤器组0
 sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;  //工作在标识符屏蔽位模式
 sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT; //过滤器位宽为单个32位。
 //===使能报文标示符过滤器按照标示符的内容进行比对过滤,扩展ID不是如下的就抛弃掉,是的话,会存入FIFO0。
 sFilterConfig.FilterIdHigh         = (((uint32_t)(0x02490000 + chouti_ID )<<3)&0xFFFF0000)>>16;                                //要过滤的ID高位
 sFilterConfig.FilterIdLow          = (((uint32_t)(0x02490000 + chouti_ID )<<3)|CAN_ID_EXT|CAN_RTR_DATA)&0xFFFF; //要过滤的ID低位
 sFilterConfig.FilterMaskIdHigh     = 0xFFFF;                        //过滤器高16位每位必须匹配
 sFilterConfig.FilterMaskIdLow      = 0x8000;                        //过滤器低16位每位必须匹配
 sFilterConfig.FilterFIFOAssignment = 0;           //过滤器被关联到FIFO 0
 sFilterConfig.FilterActivation = ENABLE;          //使能过滤器
 sFilterConfig.BankNumber = 10;
 HAL_CAN_ConfigFilter(&hcan1, &sFilterConfig);
 
 //======CAN2过滤器 3 初始化======
 sFilterConfig.FilterNumber = 14;                    //过滤器组0
 sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;  //工作在标识符屏蔽位模式
 sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT; //过滤器位宽为单个32位。
 //===使能报文标示符过滤器按照标示符的内容进行比对过滤,扩展ID不是如下的就抛弃掉,是的话,会存入FIFO0。
 sFilterConfig.FilterIdHigh         = (((uint32_t)(0X00C90000 + chouti_ID )<<3)&0xFFFF0000)>>16;                                //要过滤的ID高位
 sFilterConfig.FilterIdLow          = (((uint32_t)(0X00C90000 + chouti_ID )<<3)|CAN_ID_EXT|CAN_RTR_DATA)&0xFFFF; //要过滤的ID低位
 sFilterConfig.FilterMaskIdHigh     = 0xFFFF;                        //过滤器高16位每位必须匹配
 sFilterConfig.FilterMaskIdLow      = 0x8000;                        //过滤器低16位每位必须匹配
 sFilterConfig.FilterFIFOAssignment = 0;           //过滤器被关联到FIFO 0
 sFilterConfig.FilterActivation = ENABLE;          //使能过滤器
 sFilterConfig.BankNumber = 10;
 HAL_CAN_ConfigFilter(&hcan1, &sFilterConfig);
 
 
 }
 
 
 
 |