Hallo zusammen,
ich möchte einen Filter für zwei CAN-IDs implementieren und bin mir aber
um deren Funktion nicht ganz sicher. Im Anhang habe ich die hoffentlich
dafür notwendigen Dokumente angefügt.
Kurz zur Planung:
Filtermodus: Liste
Filterskalierung: 16 Bit
Filterbank: 0
Filternummer: 0 und 1 (aber wie weise ich beide Nummern zu?)
Ist meine Implementation so korrekt? Und sind die IDs left align?
1 | CAN_FilterConfig.BankNumber = 0;
|
2 | CAN_FilterConfig.FilterNumber = 0; // aber was ist mit 1?!?!?
|
3 | CAN_FilterConfig.FilterMode = CAN_FILTERMODE_IDLIST;
|
4 | CAN_FilterConfig.FilterScale = CAN_FILTERSCALE_16BIT;
|
5 |
|
6 | /* CAN_FxR1 Konfiguration */
|
7 | CAN_FilterConfig.FilterIdHigh = (0x701<<5);
|
8 | CAN_FilterConfig.FilterIdLow = (0x581<<5);;
|
9 |
|
10 | CAN_FilterConfig.FilterFIFOAssignment = CAN_FILTER_FIFO0;
|
11 | CAN_FilterConfig.FilterActivation = ENABLE;
|
12 |
|
13 | if (HAL_CAN_ConfigFilter(&hcan, &CAN_FilterConfig) != HAL_OK){
|
14 | Error_Handler();
|
15 | }
|
Vielen Dank :)