您尚未登录。

#1 Re: 工业芯 匠芯创 » CAN如何配置过滤器? » 2025-12-06 11:09:30

### 一、CAN 过滤的本质规则

**CAN 过滤规则:**

```
接收到的ID 与 (过滤器ID 和 mask) 匹配:

(接收ID & mask) == (过滤器ID & mask)
```

* **mask 的某位=1 → 这一位必须匹配**
* **mask 的某位=0 → 这一位忽略(不参与比较)**

---

## 例子 1:

```
RT_CAN_FILTER_ITEM_INIT(0x100, 0, 0, 0, 0x700, RT_NULL, RT_NULL)
```

| 参数    | 值       |
| ----- | ------- |
| 过滤 ID | `0x100` |
| 掩码    | `0x700` |

### 转成二进制(11-bit 标准 ID)

```
过滤 ID  (0x100) = 001 0000 0000
Mask      (0x700) = 111 0000 0000
```

| bit  | 10   | 9    | 8    | 7~0             |
| ---- | ---- | ---- | ---- | --------------- |
| mask | 1    | 1    | 1    | 0 0 0 0 0 0 0 0 |
| 含义   | 必须匹配 | 必须匹配 | 必须匹配 | 无需匹配            |

### 规则解释:

```
只匹配 ID 的前三位 bits(bit10~bit8)
001 *** *****
```

### 允许通过的 ID 范围:

```
0x100 ~ 0x1FF
```

因为前三位固定为 `001`,后面 8 bits 任意。

---

## 例子 2:

```
RT_CAN_FILTER_ITEM_INIT(0x345, 0, 0, 0, 0x7FF, RT_NULL, RT_NULL)
```

| 参数    | 值             |
| ----- | ------------- |
| 过滤 ID | `0x345`       |
| 掩码    | `0x7FF`(全部匹配) |

### 二进制:

```
过滤 ID  (0x345) = 011 0100 0101
Mask      (0x7FF) = 111 1111 1111
```

| mask 每一位都=1 → 每一位必须完全匹配 |

### 规则解释:

```
接收 ID 必须 == 0x345 才能通过。
```

---

## 总结对比表

| 配置 | ID    | 掩码    | 匹配范围                 |
| -- | ----- | ----- | -------------------- |
| 1  | 0x100 | 0x700 | 区间 → `0x100 ~ 0x1FF` |
| 2  | 0x345 | 0x7FF | 只匹配 → `0x345`        |

| mask bit | 含义          |
| -------- | ----------- |
| 1        | 必须匹配 ID     |
| 0        | 忽略此 bit,不关心 |

#3 Re: Cortex M0/M3/M4/M7 » 稳定的jlink推荐 » 2025-02-06 17:07:10

咸鱼有一堆二手原版的 Flasher ARM,为啥不考虑?

#4 Re: 工业芯 匠芯创 » 奇怪的test_can测试,本地 CAN口只能在收到本地另一can口的一次数据传输后才能正常接收到第三方设备发过来的数据。 » 2025-02-06 17:05:28

有没有一种可能是:在没有发送之前,是listen only mode,发送数据,改成了normal mode。 所以正常了 

在listen only模式下,相当于你的can bus网络只有一个normal 节点[CAN 盒工具],一个节点是发不出去数据的[原因是:ACK信号]。

当你发送数据一帧以后模式改变了,canbus网络有两个节点。所以可以正常工作了。

以上愚见,仅供参考

#5 Re: Xilinx/Altera/FPGA/CPLD/Verilog » AG1280 » 2024-01-06 10:40:42

fireal 说:
DoraemonK 说:

换 AGRV2K,2K LE   ,他们好像用这个替代1280

这些微芯片是由哪家公司生产的?

还是AGM这家的

#6 Re: Xilinx/Altera/FPGA/CPLD/Verilog » AG1280 » 2024-01-04 11:52:06

换 AGRV2K,2K LE   ,他们好像用这个替代1280

#8 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 是时候告别CSDN了! » 2023-10-07 09:21:33

网站做成这样也算是服了 都是奔着拼夕夕那种毒瘤目标去了

#10 Re: Cortex M0/M3/M4/M7 » 一个GD32的CAN外设硬件bug » 2022-08-25 16:10:58

早就被这个东西坑过,除了楼主两个型号,其他型号我也测过,一样的bug ,再也不会用这芯片了 

就这样还号称要做车载市场....呵呵

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn


太原小智科技有限责任公司 - 东莞哇酷科技有限公司联合开发