求助 ESP32 如何配置 CAN 双滤波器模式 ?
-
17688538143
- Posts: 3
- Joined: Mon Mar 25, 2019 1:10 pm
Re: 求助 ESP32 如何配置 CAN 双滤波器模式 ?
首先要根据 Dual Filter 模式计算 acceptance_code 和 acceptance_mask 值。然后在配置 can_filter_config_t 时候将 single_filter 变量设为 false
例
Filter 1 会接受所有从 0x0F 到 0xFF 的 Standard ID 包(包括 RTR )
Filter 2 会接收所有从 0x7F0 到 0x7FF 的 Standard ID 包 (包括 RTR )
acceptance_code = 0x01E0FE00
acceptance_mask = 0x1E1F01FF
例
Filter 1 会接受所有从 0x0F 到 0xFF 的 Standard ID 包(包括 RTR )
Filter 2 会接收所有从 0x7F0 到 0x7FF 的 Standard ID 包 (包括 RTR )
acceptance_code = 0x01E0FE00
acceptance_mask = 0x1E1F01FF
Code: Untitled.c Select all
static const can_filter_config_t f_config = {.acceptance_code = 0x01E0FE00, .acceptance_mask = 0x1E1F01FF, .single_filter = false};
...
can_driver_install(&g_config, &t_config, &f_config);
-
17688538143
- Posts: 3
- Joined: Mon Mar 25, 2019 1:10 pm
Re: 求助 ESP32 如何配置 CAN 双滤波器模式 ?
根据双模式的为将两个 ID 值写到 acceptance_code 里。如果 Filter 1 需要监测包的 Data Byte 1,必须将 Data Byte 1 值也写到 acceptance_code 里,否则要用 acceptance_mask 作为位掩码掩盖 Data Byte 1 部分。
请看链接了解更多详情
Who is online
Users browsing this forum: No registered users and 1 guest
