Forum: Mikrocontroller und Digitale Elektronik FDCAN STM32 Filterkonfiguration


von Alexander M. (a_lexander)


Lesenswert?

Hallo,

Ich bin grad dabei eine CAN Schnittstelle zu implementieren auf meinem 
STM32 und habe hier die vorgefertigten Funktionen von STM genommen.
Leider bekomme ich aber die Filterkonfiguration nicht vernünftig hin, 
ich kann hier nur 1 Filter konfigurieren, der 2. funktioniert leider 
nicht...

Vielleicht ist einem das Problem bekannt und er kann mir hier Ratschläge 
geben...

Die Konfiguration sieht wie folgt aus:
1
  FDCAN_FilterTypeDef canconfigfilter;
2
3
  canconfigfilter.IdType = FDCAN_STANDARD_ID;
4
  canconfigfilter.FilterIndex = 0;
5
  canconfigfilter.FilterType = FDCAN_FILTER_DUAL;
6
  canconfigfilter.FilterConfig = FDCAN_FILTER_TO_RXFIFO0;
7
  canconfigfilter.FilterID1 = 0x4B6;
8
  canconfigfilter.FilterID2 = 0x1B1;
9
  if(HAL_FDCAN_ConfigFilter(&hfdcan1, &canconfigfilter) != HAL_OK)
10
  {
11
    Error_Handler();
12
  }
13
14
  canconfigfilter.IdType = FDCAN_STANDARD_ID;
15
  canconfigfilter.FilterIndex = 1;
16
  canconfigfilter.FilterType = FDCAN_FILTER_DUAL;
17
  canconfigfilter.FilterConfig = FDCAN_FILTER_TO_RXFIFO0;
18
  canconfigfilter.FilterID1 = 0x4B1;
19
  canconfigfilter.FilterID2 = 0x7FF;
20
  if(HAL_FDCAN_ConfigFilter(&hfdcan1, &canconfigfilter) != HAL_OK)
21
  {
22
    Error_Handler();
23
  }
24
25
  if(HAL_FDCAN_ConfigGlobalFilter(&hfdcan1, FDCAN_REJECT, FDCAN_REJECT, FDCAN_REJECT_REMOTE, FDCAN_REJECT_REMOTE) != HAL_OK)
26
  {
27
    Error_Handler();
28
  }

0x4B6 + 0x1B1 werden erkannt und geben einen Interrupt, 0x4B1 + 0x7FF 
werden leider nicht erkannt. Die Funktion "HAL_FDCAN_ConfigFilter()" 
gibt aber auch keinen Fehler.

Danke.

Grüße

von Kevin M. (arduinolover)


Lesenswert?

Wie viele Filter hast du denn bei der Konfiguration der CAN Hardware 
eingestellt? Man muss dort die Anzahl an Standard und Extended Filtern 
angeben.

: Bearbeitet durch User
von Alexander M. (a_lexander)


Lesenswert?

Kevin M. schrieb:
> Wie viele Filter hast du denn bei der Konfiguration der CAN Hardware
> eingestellt? Man muss dort die Anzahl an Standard und Extended Filtern
> angeben.

Ah, vielen Dank! Das war tatsächlich der Fehler.

Grüße

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.