硬件过滤的做法节省了 CPU 开销,否则就必须由软件过滤从而占用一定的 CPU 开销。每个过滤 器组 x 由 2 个 32 位寄存器 CAN_FxR0 和 CAN_FxR1 组成。 过滤器的模式的设置: 通过设置 CAN_FM0R 的 FBMx 位,可以配置过滤器组为标识符列表模式或屏蔽位模式。 为了过滤出一组标识符,应该设置过滤器组工作在屏蔽位模式。 为了过滤出一个标识符,应该设置过滤器组工作在标识符列表模式。 应用程序不用的过滤器组,应该保持在禁用状态。 过滤器优先级规则: 位宽为 32 位的过滤器,优先级高于位宽为 16 位的过滤器; 对于位宽相同的过滤器,标识符列表模式的优先级高于屏蔽位模式; 位宽和模式都相同的过滤器,优先级由过滤器号决定,过滤器号小的优先级高。 接收邮箱(FIFO) 在接收到一个报文后,软件就可以访问接收 FIFO 的输出邮箱来读取它。一旦软件处理了报文(如把它读出来), 软件就应该对 CAN_RFxR 寄存器的 RFOM 位进行置 1,来释放该报文,以便为后面收到的报文留出存储空间。 中断 bxCAN 占用 4 个专用的中断向量。