中级会员
 
- 积分
- 217
- 金钱
- 217
- 注册时间
- 2017-3-20
- 在线时间
- 34 小时
|

楼主 |
发表于 2017-8-4 11:08:27
|
显示全部楼层
首先是第一个问题:一个过滤器能不能关联到两个FIFO,这样最多就可以存储6个通过过滤器的报文
我实验的结果是不行,一个过滤器只能关联一个FIFO(其实初始化的时候,就可以发现不行)。
//过滤器0
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=0x0000; //32位ID
CAN_FilterInitStructure.CAN_FilterIdLow=0x0000;
CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x0000;//32位MASK
CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0000;
CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_Filter_FIFO0;//过滤器0关联到FIFO0
CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_Filter_FIFO1;//过滤器0关联到FIFO1
CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;//激活过滤器0
过滤器和FIFO的关联在初始化里面完成,我先关联到FIFO0,在关联到FIFO1,初始化完成后,过滤器0只会关联到FIFO1,不可能关联到FIFO0的,就好比一个变量先给赋值1;再给赋值2;后面调用这个变量,变量值只会为2. |
|