CAN硬件过滤器的使用(32位宽掩码模式扩展帧)

    CAN_FilterInitStructure.CAN_FilterNumber=0;    //过滤器0
    CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;     //屏蔽位模式
    CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit;     //32位宽
    CAN_FilterInitStructure.CAN_FilterIdHigh=((0x1801B0A0<<3) >>16) &0xffff;                         //32位ID 左移3位是因为CAN ID只有29位,把高3位移除(高位在前)
    CAN_FilterInitStructure.CAN_FilterIdLow=(0x1801B0A0<<3) &0xffff;
    CAN_FilterInitStructure.CAN_FilterMaskIdHigh=((0x1800FFFF<<3) >>16) &0xffff;
                //32位MASK
    CAN_FilterInitStructure.CAN_FilterMaskIdLow=((0x1800FFFF<<3) &0xffff);    //最后3位不做屏蔽,网上写的是((0x1800FFFF<<3) &0xffff)|0x02 最后3位分别是IDE(1为扩展帧),RTR(0为数据帧),0;最后3位是000,可以不对是否为扩展数据帧做判断

    CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_Filter_FIFO0;//过滤器0关联到FIFO0
    CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;//激活过滤器0

 以上是根据正点原子的程序修改的具有硬件过滤器功能;

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值