找回密码
 立即注册
查看: 2549|回复: 10

CAN双滤波器设置 | 已解决

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-07-02 10:09:53

17

主题

29

回帖

299

积分

中级会员

积分
299
发表于 2022-11-18 11:43:34 | 显示全部楼层 |阅读模式
双滤波器设置始终不成功,有大佬能回一下贴吗?
           //使用双滤波过滤器,接收 ID1=0x03D9 和ID2=0X012D 的报文        
                  RX_ID1=0x03D9;RX_ID2=0X012D; //0x03D9<<5=0x7b+0x20;  0X012D<<5=0x25+0xA0
                        
                CanWriteReg(ACR0,0x7B);                   //总线验收代码寄存器
                CanWriteReg(ACR1,0x20);
                CanWriteReg(ACR2,0x25);
                CanWriteReg(ACR3,0xA0);
                CanWriteReg(AMR0,0x00);                   //总线验收屏蔽寄存器
                CanWriteReg(AMR1,0x0F);
                CanWriteReg(AMR2,0x00);
                CanWriteReg(AMR3,0x0F);
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:44
  • 最近打卡:2025-07-03 16:47:58

5

主题

22

回帖

893

积分

高级会员

积分
893
发表于 2022-11-18 16:56:12 | 显示全部楼层
顶一下,别下层了,我也想知道怎么设置:lol
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-07-02 10:09:53

17

主题

29

回帖

299

积分

中级会员

积分
299
发表于 2022-11-18 18:04:19 | 显示全部楼层
单滤波器按示例是正确的,双滤波器按说明自已设置,就是不行,也没有示例可以参考,大神有空指教,梁工在么!!!!!!!!!!!
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-07-02 10:09:53

17

主题

29

回帖

299

积分

中级会员

积分
299
发表于 2022-11-18 18:04:52 | 显示全部楼层
   /*使用单滤波过滤器,只接收 ID=0x07fe 的报文
       
                CanWriteReg(ACR0,0xff);                   //总线验收代码寄存器
                CanWriteReg(ACR1,0xc0);
                CanWriteReg(ACR2,0x00);
                CanWriteReg(ACR3,0x00);
                CanWriteReg(AMR0,0x00);                   //总线验收屏蔽寄存器
                CanWriteReg(AMR1,0x0F);
                CanWriteReg(AMR2,0xFF);
                CanWriteReg(AMR3,0xFF);*/
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:532
  • 最近打卡:2025-10-15 08:56:42
已绑定手机

47

主题

2274

回帖

7995

积分

论坛元老

积分
7995
发表于 2022-11-18 18:13:55 | 显示全部楼层
你的滤波设置没有问题,需要注意的是最后MR寄存器里面的滤波模式设置,要采用双滤波设置:
CanWriteReg(MR  ,0x00);                //退出 Reset Mode, 采用双滤波设置(设置过滤器后注意选择滤波模式)

例程提供的是单滤波设置参考代码,所以最后设置的是单滤波模式:
CanWriteReg(MR  ,0x01);                //退出 Reset Mode, 采用单滤波设置(设置过滤器后注意选择滤波模式)


截图202505021410566784.jpg
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-07-02 10:09:53

17

主题

29

回帖

299

积分

中级会员

积分
299
发表于 2022-11-19 13:43:29 | 显示全部楼层
非常感谢*乘风飞扬*的回复提醒,在设置单滤波模式或双滤波器模式中,最后的设置没有改回,!!
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:149
  • 最近打卡:2025-10-15 08:54:01

17

主题

68

回帖

887

积分

高级会员

积分
887
发表于 2024-3-4 11:02:45 | 显示全部楼层
MARK 一下
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:149
  • 最近打卡:2025-10-15 08:54:01

17

主题

68

回帖

887

积分

高级会员

积分
887
发表于 2024-3-6 16:36:21 | 显示全部楼层
RX_ID1=0x03D9;RX_ID2=0X012D; //0x03D9<<5=0x7b+0x20;  0X012D<<5=0x25+0xA0

这个是怎么个算法? 左移就可以分解了?
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:22
  • 最近打卡:2025-05-02 12:44:15

8

主题

52

回帖

351

积分

中级会员

积分
351
发表于 2025-5-2 12:44:15 | 显示全部楼层
同问,这个怎么算的?双滤波器指的就是能让2个ID通过?那我需要更多的ID通过怎么设置的?
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-10-06 16:41:53
已绑定手机

0

主题

2

回帖

8

积分

新手上路

积分
8
发表于 2025-10-6 17:03:01 | 显示全部楼层
同问双滤波的具体算法,AI反推官方例程告诉我需要左移一位才可以分解,但是没看到手册提到分解。
// 正确:双滤波接收0x2D0和0x2D2(基于stc32g.pdf预处理规则)
// 第一组:0x2D0 << 1 = 0x5A0 → 高8位0x05,低8位0xA0
CanWriteReg(ACR0, 0xA0);    // 替换你的0xD2
CanWriteReg(ACR1, 0x05);    // 替换你的0x02
CanWriteReg(AMR0, 0x00);   
CanWriteReg(AMR1, 0x0F);   

// 第二组:0x2D2 << 1 = 0x5A4 → 高8位0x05,低8位0xA4
CanWriteReg(ACR2, 0xA4);    // 替换你的0xD0
CanWriteReg(ACR3, 0x05);    // 替换你的0x02
CanWriteReg(AMR2, 0x00);   
CanWriteReg(AMR3, 0x0F);  

我这个怎么算最后执行时都收不到我要的2D0和2D2,例程就没有问题。

点评

由于只需要ID部分,所以需要先设置ID以外的部分为不关心,即对应的AMR寄存器位设置为1 这里给出一段用于配置双滤波器中,仅过滤得到2个ID号的代码: 这段代码仅适用于标准帧下的ID过滤,拓展帧因为只能过滤13位~2  详情 回复 发表于 2025-10-6 20:03
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-10-16 06:06 , Processed in 0.127666 second(s), 114 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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