can硬件滤波 stm32cubemx_[转载]STM32的CAN滤波器设置

STM32F103RBT6的CAN中共有14个位宽可变(可配置)的标识符滤波器组,软件通过对它们编程,从而在CAN

收到的报文中选择它需要的报文,而把其它报文丢弃掉。

图2-27

滤波器组位宽设置-寄存器组织框图

在标识符屏蔽模式下,过滤器组x的第1个标识符寄存器(CAN_FxR1)用来保存用于与报文ID比较的完整标识符。第2个标识符寄存器(CAN_FxR2)则用来表示屏蔽位,即表明报文ID

要与第1个标识符寄存器中的哪几位比较,值为1的寄存器位就是屏蔽位(参与比较,位必须匹配才能通过滤波器),值为0的寄存器位不参与比较。

本文的基于STM32的CAN总线学习板程序中运用的是“标识符屏蔽”模式,下面针对此模式做详细解读和举例。

从滤波器的寄存器映像中可知:无论用作哪个模式,标识符寄存器的第0位保留,第1位为报文的RTR位,第2位是报文的IDE位,报文的扩展ID保存在第3

~ 20

位(共18位),报文的标准ID保存在第21 ~

32 位(共11位)。使用时,由开发者根据需要填写相应的设置。

举例1:设置滤波器,采用1个32位滤波器的“标识符屏蔽”模式,将CAN

ID设置为“0x028A”,接收标准帧、数据帧。

解答:详见表2-37所示。

标识符寄存器CAN_FxR1设置:

第0位保留,置位0;第1位为报文的RTR位置0(数据帧);第2位是报文的IDE位置0(

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值