2022-02-24 02:27 AM
Hi,
I'm using extended ID for my CAN bus. I want to filter ID 0x12.
My code is working well when I receive an extended ID frame with containing the ID 0x12. If the received ID is something else than 0x12, the FIFO callback isn't triggered.
CAN_FilterTypeDef sFilterConfig;
sFilterConfig.FilterBank = 0;
sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;
sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
sFilterConfig.FilterIdHigh = 0;
sFilterConfig.FilterIdLow = 0x12 << 3;
sFilterConfig.FilterMaskIdHigh = 0;
sFilterConfig.FilterMaskIdLow = 0xFF << 3;
sFilterConfig.FilterFIFOAssignment = CAN_RX_FIFO0;
sFilterConfig.FilterActivation = ENABLE;
sFilterConfig.SlaveStartFilterBank = 27;
HAL_CAN_ConfigFilter(&hcan1, &sFilterConfig);
However, when I receive a standard ID frame, whatever the ID is, my FIFO callback is triggered.
So I'd like to discard all the standard ID frames that I receive so that they won't trigger my callback, how could I do it ?
Thanks
Solved! Go to Solution.
2022-02-24 03:52 AM
Should be able to add the IDE bit to mask/compare
2022-02-24 03:52 AM
Should be able to add the IDE bit to mask/compare
2022-02-24 05:14 AM
2022-02-24 05:32 AM
https://community.st.com/s/question/0D50X0000B5HPIRSQ4/can-filter-extid
https://community.st.com/s/question/0D50X0000BaLrTySQK/can-bus-extid-paramater-is-not-transmitting