王昱顺 发表于 2025-10-6 20:03:42

eqpwljxz 发表于 2025-10-6 17:03
同问双滤波的具体算法,AI反推官方例程告诉我需要左移一位才可以分解,但是没看到手册提到分解。
// 正确: ...

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

这里给出一段用于配置双滤波器中,仅过滤得到2个ID号的代码:
#define ID0 0x2d0
#define ID1 0x2d1

AMR0 = 0x00;//1为无关
AMR1 = 0x1f;
AMR2 = 0x00;
AMR3 = 0x1f;
//屏蔽代码中,仅关心两个ID号

ACR2 = ID0>>3;
ACR3 = (ID0&0x07)<<5;
ACR0 = ID1>>3;
ACR1 = (ID1&0x07)<<5;//装载两个滤波器

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

页: 1 [2]
查看完整版本: CAN双滤波器设置 | 已解决