Я уже написал процедуру установки/удаления фильтров. Все нормально работает.
Единственное, что неудобно — нумерация, которую дает STM32 фильтрам: (CAN->RDTR >>
Думал поначалу эту информацию использовать, но вижу, что от нее толку нет. Вот возможность указать FIFO# в фильтре должна быть — при больших потоках данных и необходимости принимать все пакеты, можно все четные идентификаторы отправить на FIFO0, а нечетные — на FIFO1. Тогда меньше будет шансов что-то пропустить.
Скажем, в моем термомониторинге я замечал, что на "широковещательную" команду отвечает меньше половины — видимо, мастер не успевает все запросы принять, обработать в нужном виде и отправить по USB на хост. Поэтому там вместо широковещательных команд пришлось использовать адресные с поочередным перебором...