Page 1 of 1
求助 ESP32 如何配置 CAN 双滤波器模式 ?
Posted: Tue May 14, 2019 10:24 am
by 17688538143
求助 ESP32 如何配置 CAN 双滤波器模式 ?
Re: 求助 ESP32 如何配置 CAN 双滤波器模式 ?
Posted: Tue May 14, 2019 11:59 am
by ESP_Dazz
首先要
根据 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
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);
Re: 求助 ESP32 如何配置 CAN 双滤波器模式 ?
Posted: Wed May 15, 2019 2:29 am
by 17688538143
你好,非常感谢你的回复!我现在需要配置CAN滤波器固定接收两个ID,需要如何配置呢?
Re: 求助 ESP32 如何配置 CAN 双滤波器模式 ?
Posted: Wed May 15, 2019 7:13 am
by ESP_Dazz
根据双模式的为将两个 ID 值写到 acceptance_code 里。如果 Filter 1 需要监测包的 Data Byte 1,必须将 Data Byte 1 值也写到 acceptance_code 里,否则要用 acceptance_mask 作为位掩码掩盖 Data Byte 1 部分。
- acc_filter.png (2.9 KiB) Viewed 9649 times
请看链接了解更多详情
Re: 求助 ESP32 如何配置 CAN 双滤波器模式 ?
Posted: Tue Feb 28, 2023 7:15 am
by esp_wxyao
说的不对吧,我测试的为什么只能接收低ID低8位为F的ID呢,比如只能接收-0X1F,2F,3F一直到FF。