找回密码
 立即注册
楼主: 15818564352

CAN双滤波器设置 | 已解决

[复制链接]
已绑定手机
已实名认证

148

主题

4098

回帖

1万

积分

超级版主

积分
10914
发表于 2025-10-6 20:03:42 | 显示全部楼层
eqpw*** 发表于 2025-10-6 17:03
同问双滤波的具体算法,AI反推官方例程告诉我需要左移一位才可以分解,但是没看到手册提到分解。
// 正确: ...

由于只需要ID部分,所以需要先设置ID以外的部分为不关心,即对应的AMR寄存器位设置为1

这里给出一段用于配置双滤波器中,仅过滤得到2个ID号的代码:
  1. #define ID0 0x2d0
  2. #define ID1 0x2d1
  3. AMR0 = 0x00;//1为无关
  4. AMR1 = 0x1f;
  5. AMR2 = 0x00;
  6. AMR3 = 0x1f;
  7. //屏蔽代码中,仅关心两个ID号
  8. ACR2 = ID0>>3;
  9. ACR3 = (ID0&0x07)<<5;
  10. ACR0 = ID1>>3;
  11. ACR1 = (ID1&0x07)<<5;//装载两个滤波器
复制代码


这段代码仅适用于标准帧下的ID过滤,拓展帧因为只能过滤13位~28位,我看这个给出的例子也不像是拓展帧的
截图202510062003383753.jpg
回复

使用道具 举报 送花

已绑定手机

19

主题

213

回帖

579

积分

高级会员

积分
579
发表于 4 天前 | 显示全部楼层
是的,对于扩展帧的双滤波器,只能过滤ID的高16位,低13位只能在接收报文后软件自行判断ID是否一致;
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-11-7 11:25 , Processed in 0.070717 second(s), 47 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表