You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello,
I'm using both CAN1 and CAN2 on a STM32F446RE. CAN1 works fine.
But with the default initializeFilters() functions that is called in setBaudRate(), CAN2 was only able to send but not receive messages.
The fix I found was also setting the SlaveStartFilterBank to 14 for CAN2:
void STM32_CAN::initializeFilters() {
CAN_FilterTypeDef sFilterConfig;
// We set first bank to accept all RX messages
sFilterConfig.FilterBank = 0;
sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;
sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
sFilterConfig.FilterIdHigh = 0x0000;
sFilterConfig.FilterIdLow = 0x0000;
sFilterConfig.FilterMaskIdHigh = 0x0000;
sFilterConfig.FilterMaskIdLow = 0x0000;
sFilterConfig.FilterFIFOAssignment = CAN_RX_FIFO0;
sFilterConfig.FilterActivation = ENABLE;
#ifdef CAN2
// Filter banks from 14 to 27 are for Can2, so first for Can2 is bank 14. This
// is not relevant for devices with only one CAN
if (_canPort == CAN1) {
sFilterConfig.SlaveStartFilterBank = 14;
}
if (_canPort == CAN2) {
sFilterConfig.FilterBank = 14;
sFilterConfig.SlaveStartFilterBank = 14; // SlaveStartFilterBank also needs to be set for CAN2 apparently
}
#endif
HAL_CAN_ConfigFilter(n_pCanHandle, &sFilterConfig);
}
I'm not sure if this is a special issue with my setup (I can provide more details if necessary) or a general issue.
The text was updated successfully, but these errors were encountered:
Could be common issue. I should soon have my new board in hands that has both CAN1 and CAN2 available, so I can test this too and include the fix in library, if needed
Hello,
I'm using both CAN1 and CAN2 on a STM32F446RE. CAN1 works fine.
But with the default initializeFilters() functions that is called in setBaudRate(), CAN2 was only able to send but not receive messages.
The fix I found was also setting the SlaveStartFilterBank to 14 for CAN2:
I'm not sure if this is a special issue with my setup (I can provide more details if necessary) or a general issue.
The text was updated successfully, but these errors were encountered: