1 | CAN_FilterInitStructure.CAN_FilterNumber = 0;
|
2 | CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask;
|
3 | CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit;
|
4 | CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000;
|
5 | CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000;
|
6 | CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000;
|
7 | CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000;
|
8 | CAN_FilterInitStructure.CAN_FilterFIFOAssignment = CAN_FIFO0;
|
9 | CAN_FilterInitStructure.CAN_FilterActivation = ENABLE;
|
10 | CAN_FilterInit(&CAN_FilterInitStructure);
|
Muss ich die Filterinitialisierung mehrfach durchführen, für jede
verwendete Filternummer? Also zb weiter so:
1 | CAN_FilterInitStructure.CAN_FilterNumber = 14;
|
2 | CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask;
|
3 | CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit;
|
4 | CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000;
|
5 | CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000;
|
6 | CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000;
|
7 | CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000;
|
8 | CAN_FilterInitStructure.CAN_FilterFIFOAssignment = CAN_FIFO1;
|
9 | CAN_FilterInitStructure.CAN_FilterActivation = ENABLE;
|
10 | CAN_FilterInit(&CAN_FilterInitStructure);
|
Damit hätte ich quasi Filter 0 und 14 konfiguriert für jeweils 1 FIFO,
und kann dann in den Interrupts aus den jeweiligen FIFOs lesen?