STM32 CAN-Frage

Gast #2756025
Lesenswert?
• ▲
▼
Hallo!

Ich verwende den CAN Treiber aus der ST-Lib und möchte den CAN Filter 
konfigurieren, aber ich weiß nicht ganz wie das funktionieren soll.
Das Filter soll so konfiguriert werden, dass alle Standard-IDs gefiltert 
werden. Weiß jemand wie die Konfiguration aussehen muss?

Die Struktur sieht folgendermaßen aus:
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 = ???;
5
CAN_FilterInitStructure.CAN_FilterIdLow = ??? ;
6
CAN_FilterInitStructure.CAN_FilterMaskIdHigh = ??? ;
7
CAN_FilterInitStructure.CAN_FilterMaskIdLow = ??? ;
8
CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0;
9
CAN_FilterInitStructure.CAN_FilterActivation = ENABLE;
10
CAN_FilterInit(&CAN_FilterInitStructure);

Danke und lg,
Bernd
#2756171
Lesenswert?
• ▲
▼
Also ich glaube dann is die obige Struct der falsche Ansatz. Ich denke 
du musst die Filter auf Std ID umstellen und dort irgendwie mit dem 
mask-mode alles durchlassen.
Habe bisher immer nur einzelne IDs zur Filterung eingestellt, kenn mich 
damit leider auch nicht so gut aus!
Gast #2756502
Lesenswert?
• ▲
▼
Es sollen nur die Extended IDs empfangen werden, d.h. die Standard IDs 
sollen gefiltert werden.

Einzelne IDs zu filtern ist kein Problem, aber wie ich den gesamten 
Standard ID Bereich filtern kann fällt mir einfach nicht ein.

lg,
Bernd
#2756572
Lesenswert?
• ▲
▼
Was hast du denn schon ausprobiert? Die Mask schonmal mit lauter '1' 
gefüllt?
Wenn ich das richtig verstanden habe, heißt das, dass kein Bit 
übereinstimmen muss um durchzukommen.


So etwa stell ich mir das vor:

Filterbank:   ID     11100000000
              Mask   00011111111


Messages:     ID     11111111111 <- kommt durch
              ID     11101010101 <- kommt durch
              ID     10100000000 <- kommt nicht durch

Der '1er' ist hier das "don't care".

Gruß

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.