求助 ESP32 如何配置 CAN 双滤波器模式 ?

17688538143
Posts: 3
Joined: Mon Mar 25, 2019 1:10 pm

求助 ESP32 如何配置 CAN 双滤波器模式 ?

Postby 17688538143 » Tue May 14, 2019 10:24 am

求助 ESP32 如何配置 CAN 双滤波器模式 ?

ESP_Dazz
Posts: 148
Joined: Fri Jun 02, 2017 6:50 am

Re: 求助 ESP32 如何配置 CAN 双滤波器模式 ?

Postby ESP_Dazz » Tue May 14, 2019 11:59 am

首先要根据 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
  1. static const can_filter_config_t f_config = {.acceptance_code = 0x01E0FE00, .acceptance_mask = 0x1E1F01FF, .single_filter = false};
  2.  
  3. ...
  4.  
  5. can_driver_install(&g_config, &t_config, &f_config);

17688538143
Posts: 3
Joined: Mon Mar 25, 2019 1:10 pm

Re: 求助 ESP32 如何配置 CAN 双滤波器模式 ?

Postby 17688538143 » Wed May 15, 2019 2:29 am

你好,非常感谢你的回复!我现在需要配置CAN滤波器固定接收两个ID,需要如何配置呢?

ESP_Dazz
Posts: 148
Joined: Fri Jun 02, 2017 6:50 am

Re: 求助 ESP32 如何配置 CAN 双滤波器模式 ?

Postby ESP_Dazz » Wed May 15, 2019 7:13 am

根据双模式的为将两个 ID 值写到 acceptance_code 里。如果 Filter 1 需要监测包的 Data Byte 1,必须将 Data Byte 1 值也写到 acceptance_code 里,否则要用 acceptance_mask 作为位掩码掩盖 Data Byte 1 部分。
acc_filter.png
acc_filter.png (2.9 KiB) Viewed 758 times
请看链接了解更多详情

Who is online

Users browsing this forum: No registered users and 4 guests