新手入门 
 
	- 积分
 - 31
 
        - 金钱
 - 31 
 
       - 注册时间
 - 2015-7-25
 
      - 在线时间
 - 0 小时
 
 
 
 | 
 
5金钱 
假如知道CAN ID =0xAFE,但不知道这个ID是标准帧还是扩展帧,如何设置CAN过滤器,不管CAN ID是扩展帧率还是标准帧率都能通过,前提是只使用一个过滤器,但其他ID是过滤的。 
一般过滤器是这样设置: 
扩展: 
CAN_FilterInitStructure.CAN_FilterIdHigh = (((u32)CAN_ID<<3)&0xFFFF0000)>>16; 
CAN_FilterInitStructure.CAN_FilterIdLow  = (((u32)CAN_ID<<3))&0xFFFF; 
CAN_FilterInitStructure.CAN_FilterMaskIdHigh  = 0xFFFF; 
CAN_FilterInitStructure.CAN_FilterMaskIdLow   = 0xFFFF; 
标准: 
CAN_FilterInitStructure.CAN_FilterIdHigh = (((u32)CAN_ID<<21)&0xFFFF0000)>>16; 
CAN_FilterInitStructure.CAN_FilterIdLow  = (((u32)CAN_ID<<21))&0xFFFF; 
CAN_FilterInitStructure.CAN_FilterMaskIdHigh  = 0xFFFF; 
CAN_FilterInitStructure.CAN_FilterMaskIdLow   = 0xFFFF; |   
 
 
 
 
 
 |