Forum: Mikrocontroller und Digitale Elektronik STM8S Standard Library - CAN Filter


von Peter (Gast)


Lesenswert?

Hallo,

Da ich aus den anderen Foren-Beiträgen nicht schlau geworden bin, muss 
ich diese Frage in einem eigenen Thread stellen:

Ich arbeite derzeit mit dem STM8AF und will dort die CAN-Kommunikation 
implementieren. Allerdings schaffe ich es nicht, den Filter richtig zu 
konfigurieren.

Mein Wunsch ist, nur Adressen zwischen 0xaa und 0xaf durchzulassen.
Hier der Code-Auschnitt meiner Konfiguration:

  /* CAN filter init */
  CAN_FilterNumber = CAN_FilterNumber_0;
  CAN_FilterActivation = ENABLE;
  CAN_FilterMode = CAN_FilterMode_IdMask;
  CAN_FilterScale = CAN_FilterScale_8Bit;
  CAN_FilterID1=0xaa;
  CAN_FilterID2=0xaf;
  CAN_FilterID3=0;
  CAN_FilterID4=0;
  CAN_FilterIDMask1=0xff;
  CAN_FilterIDMask2=0xff;
  CAN_FilterIDMask3=0;
  CAN_FilterIDMask4=0;

  CAN_FilterInit(CAN_FilterNumber, CAN_FilterActivation, CAN_FilterMode,
                 CAN_FilterScale,CAN_FilterID1, CAN_FilterID2,
                 CAN_FilterID3, CAN_FilterID4,CAN_FilterIDMask1,
                 CAN_FilterIDMask2, CAN_FilterIDMask3, 
CAN_FilterIDMask4);

Bin für jede Hilfe dankbar!
Liebe Grüße,
P.

von Olli Z. (z80freak)


Lesenswert?

wird das im uC wirklich als Range (von-bis) definiert?
Ich kenn das eher als ID mit Maske und wäre dann 0xAF = 0b10101111 mit 
Mask 0xF0 = 0b11110000 ein Filter der die Adressen von 0xA0 bis 0xAF 
abdeckt.
Aber, ich habe das Datenblatt vom STM8 nicht gelesen...

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.