STM32 CAN总线屏蔽寄存器设置

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

发布了14 篇原创文章 · 获赞 9 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/xiaolong1126626497/article/details/45505897