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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版