你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32Cube的CAN滤波如何设置

[复制链接]
newphj 提问时间:2016-9-14 15:14 /
STM32Cube的CAN滤波如何设置,需要只让两个需要的ID进去中断,其他的全部过滤。请问如何设置?
/*##-2- Configure the CAN1 Filter ###########################################*/
        sFilterConfig.FilterNumber = 0;
        sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;
        sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
        sFilterConfig.FilterIdHigh = AllowID_F507<<5;
        sFilterConfig.FilterIdLow = 0|CAN_ID_STD;;
        sFilterConfig.FilterMaskIdHigh = 0xFFFF;
        sFilterConfig.FilterMaskIdLow = 0xFFFF;
        sFilterConfig.FilterFIFOAssignment = CAN_FIFO0;
        sFilterConfig.FilterActivation = ENABLE;
        sFilterConfig.BankNumber = 0;
        HAL_CAN_ConfigFilter(&hcan, &sFilterConfig);

        /*##-2- Configure the CAN1 Filter ###########################################*/
        sFilterConfig.FilterNumber = 1;
        sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;
        sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
        sFilterConfig.FilterIdHigh = AllowID2_F507<<5;
        sFilterConfig.FilterIdLow = 0|CAN_ID_STD;;
        sFilterConfig.FilterMaskIdHigh = 0xFFFF;
        sFilterConfig.FilterMaskIdLow = 0xFFFF;
        sFilterConfig.FilterFIFOAssignment = CAN_FIFO0;
        sFilterConfig.FilterActivation = ENABLE;
        sFilterConfig.BankNumber = 0;
        HAL_CAN_ConfigFilter(&hcan, &sFilterConfig);

        HAL_CAN_Receive_IT(&hcan,CAN_FIFO0);

芯片是用STM32F103VET的。

收藏 1 评论4 发布时间:2016-9-14 15:14

举报

4个回答
xmshao 回答时间:2016-9-14 15:29:53
本帖最后由 xmshao 于 2016-9-14 16:23 编辑

既然这样 你可以设置2个滤波器,使用标识符列模式。

  sFilterConfig.FilterMode = CAN_FilterMode_IdList;
。。。

另外,列表模式下的话,
sFilterConfig.FilterMaskIdHigh = 0x。。。;

sFilterConfig.FilterMaskIdLow = 0x。。。 应该是另外一个ID.







评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

newphj 回答时间:2016-9-17 13:32:25
xmshao 发表于 2016-9-14 15:29
既然这样 你可以设置2个滤波器,使用标识符列模式。

  sFilterConfig.FilterMode = CAN_FilterMode_IdList ...

谢谢回复
zhulikai 回答时间:2016-10-12 15:21:35
请问一下版主 HAL_CAN_ConfigFilter(&hcan, &sFilterConfig);里面的hcan是不是can初始化的结构体变量?
zhulikai 回答时间:2016-10-13 08:50:33
laiyingjie 发表于 2016-10-12 16:10
帮版主回答一下
由STM32CubeMX生成的工程中有个can.c的文件,里面有这样一行代码: CAN_HandleTypeDef hc ...

谢谢回答,最近在做STM32F334的CAN测试,不过问题已解决

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版