А кто-нить тут силен в фильтрах и масках CAN STM32? Никак не уловлю
суть. Отправляю сообщения с 29-битным идентификатором. Пытаюсь ловить с такими настройками (богомерзкий HAL):
sFilterConfig.FilterBank = 0;
sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;
sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
sFilterConfig.FilterIdHigh = 0x0000;
sFilterConfig.FilterIdLow = 0x0000;
sFilterConfig.FilterMaskIdHigh = 0xffff;
sFilterConfig.FilterMaskIdLow = 0xfff0;
sFilterConfig.FilterFIFOAssignment = CAN_RX_FIFO0;
sFilterConfig.FilterActivation = ENABLE;
sFilterConfig.SlaveStartFilterBank = 14;
Ловятся только сообщения с идентификаторами 0 и 1. А по логике вроде должны ловиться 0...0xf.
Надеюсь, в 32-битном режиме фильтров не надо никуда побитно двигать значения фильров/масок? Если надо (а такие примеры находит гугл), то не пойму куда, насколько и почему. Вроде, никакого хитрого маппинга не должно быть.
Что не улавливаю?