新手入门
- 积分
- 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; |
|