STM32普通芯片的CAN有14组过滤器组,互联型有28组过滤器组,每组过滤器有2个可配置的32位寄存器:CAN_FxR0和CAN_FxR1。用以对收到的帧进行过滤,以此判断是否接收该帧。
每组过滤器组有两种工作模式:标识符列表模式,标识符屏蔽位模式。
标识符列表模式:收到的标识符必须与过滤器的值完全相等,才能通过。
标识符屏蔽位模式:只要标识符的某些位符合,就算通过。
每组过滤器的过滤宽度是可变的,有两种类型:32位,16位。
可以通过配置工作模式和宽度,将一个过滤器组配置为如下4种形式:
32位的屏蔽位模式:1个过滤器。
CAN_FxR1用于指定需要关心哪些位
CAN_FxR0用于指定这些位的值
32位的列表模式:2个过滤器
CAN_FxR0用来指定过滤器0的标准值
CAN_FxR0用于指定过滤器1的标准值
16位的 屏蔽位模式:2个过滤器
CAN_FxR0用来配置过滤器0,[31-16]位指定需要关心的位,[15-0]指定这些位的值
CAN_FxR1用来配置过滤器1,[31-16]位指定需要关心的位,[15-0]指定这些位的值
16位的列表模式:4个过滤器
CAN_FxR0的[15-0]位用来配置过滤器0ÿ