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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.