求助 ESP32 如何配置 CAN 双滤波器模式 ?
-
- Posts: 3
- Joined: Mon Mar 25, 2019 1:10 pm
求助 ESP32 如何配置 CAN 双滤波器模式 ?
求助 ESP32 如何配置 CAN 双滤波器模式 ?
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
- 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);
-
- Posts: 3
- Joined: Mon Mar 25, 2019 1:10 pm
Re: 求助 ESP32 如何配置 CAN 双滤波器模式 ?
你好,非常感谢你的回复!我现在需要配置CAN滤波器固定接收两个ID,需要如何配置呢?
Re: 求助 ESP32 如何配置 CAN 双滤波器模式 ?
根据双模式的为将两个 ID 值写到 acceptance_code 里。如果 Filter 1 需要监测包的 Data Byte 1,必须将 Data Byte 1 值也写到 acceptance_code 里,否则要用 acceptance_mask 作为位掩码掩盖 Data Byte 1 部分。
请看链接了解更多详情
Re: 求助 ESP32 如何配置 CAN 双滤波器模式 ?
说的不对吧,我测试的为什么只能接收低ID低8位为F的ID呢,比如只能接收-0X1F,2F,3F一直到FF。
Who is online
Users browsing this forum: No registered users and 33 guests