2025-06-03 7:22 PM - last edited on 2025-06-11 12:39 PM by mƎALLEm
I'm working with an STM32F412ZETx microcontroller and encountering an issue with the CAN2 peripheral. The transmit (Tx) functionality is working correctly, but the receive (Rx) interrupt via FIFO1 is not triggering at all.
CAN2 transmit works fine. I can see messages on the bus. same setup with CAN1 (Rx FIFO0) works fine.
Is there anything specific I need to configure for CAN2 RX interrupts on STM32F412?
Could the filter bank or SlaveStartFilterBank setting be causing this?
Are there known limitations with CAN2 and FIFO1 on this device?
2025-06-11 12:00 PM
Did you enable the NVIC?
2025-06-11 12:42 PM
Hello,
You have an issue with the filter bank configuration:
sFilterConfig.FilterBank = 0;
sFilterConfig.SlaveStartFilterBank = 14;
FilterBank should be >= SlaveStartFilterBank.
Refer to this article: STM32 in dual CAN configuration: bxCAN Filter bank explanation and relation with CAN2 Start Bank parameter
2025-06-11 12:46 PM - edited 2025-06-11 12:46 PM
@mƎALLEm wrote:
Hello,
You have an issue with the filter bank configuration:
sFilterConfig.FilterBank = 0; sFilterConfig.SlaveStartFilterBank = 14;
FilterBank should be >= SlaveStartFilterBank.
Refer to this article: STM32 in dual CAN configuration: bxCAN Filter bank explanation and relation with CAN2 Start Bank parameter
Sorry what I saw is the code related to CAN1.
As said by @Karl Yamashita you need to check if you enabled CAN2 NVIC Rx for FIFO1