NXP

STM32 CAN总线屏蔽寄存器设置

2019-07-12 12:22发布

CAN->sFilterRegister[0].FR1=0X12<<21;       //设置要接收的ID         //21--32标准帧   CAN->sFilterRegister[0].FR2=0X00000000;  //设置屏蔽寄存器         11位为标准帧   0表示不关心  1表示关心   0X12是我们设置要接收的ID 0X12 的二进制 :0000 0001 0010 0000 0000 0000 0000 0000   如果屏蔽寄存器设置为:0XFFFFFFFF  1111 1111 1111 1111 1111 1111 1111 1111 就只能接收  0X12这个ID的数据 如果屏蔽寄存器设置为:0XFFDFFFFF  1111 1111 1101 1111 1111 1111 1111 1111 就只能接收  0X12 0X13这两个ID的数据 因为 0X12 的二进制 :0000 0001 0010000 0000 0000 0000 0000      0X13 的二进制 :0000 0001 0011 0000 0000 0000 0000 0000 如果屏蔽寄存器设置为:0XFF9FFFFF  1111 1111 1001 1111 1111 1111 1111 1111 就只能接收  0X12 0X13 0X11 0X10这四个ID的数据 因为 0X12 的二进制 :0000 0001 0010000 0000 0000 0000 0000      0X13 的二进制 :0000 0001 0011 0000 0000 0000 0000 0000  0X11 的二进制 :0000 0001 0001 0000 0000 0000 0000 0000     0X10 的二进制 0000 0001 0000 0000 0000 0000 0000 0000