OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7890|回复: 2

STM32 CAN过滤器设置列表模式有问题?

[复制链接]

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2013-10-10
在线时间
12 小时
发表于 2021-4-28 14:23:17 | 显示全部楼层 |阅读模式
5金钱
  有4个帧ID,所以设置了列表模式,发现只有0x0040和0x07F8两个报文能收到,另外两个收不到,不知道原因。
下面是代码配置:
sFilterConfig.FilterNumber = 0;
  sFilterConfig.FilterMode = CAN_FILTERMODE_IDLIST;
  sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
  sFilterConfig.FilterIdHigh = (0x07FF << 5);
  sFilterConfig.FilterIdLow = 0x07FF;
  sFilterConfig.FilterMaskIdHigh = (0x07FE << 5);
  sFilterConfig.FilterMaskIdLow = 0x07FE;
  sFilterConfig.FilterFIFOAssignment = 0;
  sFilterConfig.FilterActivation = ENABLE;
  sFilterConfig.BankNumber = 14;
  HAL_CAN_ConfigFilter(&hcan, &sFilterConfig);
       
        sFilterConfig.FilterNumber = 1;
  sFilterConfig.FilterMode = CAN_FILTERMODE_IDLIST;
  sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
  sFilterConfig.FilterIdHigh = (0x07F8 << 5);
  sFilterConfig.FilterIdLow = 0x07F8;
  sFilterConfig.FilterMaskIdHigh = (0x0040 << 5);
  sFilterConfig.FilterMaskIdLow = 0x0040;
  sFilterConfig.FilterFIFOAssignment = 0;
  sFilterConfig.FilterActivation = ENABLE;
  sFilterConfig.BankNumber = 14;
  HAL_CAN_ConfigFilter(&hcan, &sFilterConfig);

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

12

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
209
金钱
209
注册时间
2011-1-21
在线时间
43 小时
发表于 2021-4-28 15:06:28 | 显示全部楼层
sFilterConfig.FilterNumber = 0;
  sFilterConfig.FilterMode = CAN_FILTERMODE_IDLIST;
  sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
  sFilterConfig.FilterIdHigh = (0x07FF << 5);
  sFilterConfig.FilterIdLow = 0x07FF;
  sFilterConfig.FilterMaskIdHigh = (0x07FE << 5);
  sFilterConfig.FilterMaskIdLow = 0x07FE;

  sFilterConfig.FilterFIFOAssignment = 0;
  sFilterConfig.FilterActivation = ENABLE;
  sFilterConfig.BankNumber = 14;
  HAL_CAN_ConfigFilter(&hcan, &sFilterConfig);
        
        sFilterConfig.FilterNumber = 1;
  sFilterConfig.FilterMode = CAN_FILTERMODE_IDLIST;
  sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
  sFilterConfig.FilterIdHigh = (0x07F8 << 5);
  sFilterConfig.FilterIdLow = 0x07F8;
  sFilterConfig.FilterMaskIdHigh = (0x0040 << 5);
  sFilterConfig.FilterMaskIdLow = 0x0040;

  sFilterConfig.FilterFIFOAssignment = 0;
  sFilterConfig.FilterActivation = ENABLE;
  sFilterConfig.BankNumber = 14;
  HAL_CAN_ConfigFilter(&hcan, &sFilterConfig);


列表模式下,只有收到设置了相同ID(0x0040和0x07F8)报文才能收到
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2021-9-20
在线时间
1 小时
发表于 2021-9-20 21:39:33 | 显示全部楼层
4个帧ID 如果是连着的,最好用 标识符屏蔽模式
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 07:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表