Hallo, es gibt zwar schon einige STM32 CAN-Filter-Threads hier im Forum, ich hab aber mein (mehr oder weniger spezifisches) Problem noch nicht finden können. Ich würde gern über CAN1 alle Nachrichten empfangen, aber einen bestimmten ID-Bereich anders behandeln (als Teil einer Art CAN-Gateway). Beispiel: --------- IDs 0x01 - 0x04: In Abhängigkeit von andern (Eingangs-)Parametern blockieren oder wieder auf CAN2 ausgeben. alle IDs ab 0x05: Einfach unverändert auf CAN2 ausgeben. Die Filtereinstellung für die ersten 4 IDs klappt schon prima, habe die Filterbank im IdList-Modus. Wie kann ich aber einen anderen Filter so konfigurieren, dass er alle IDs ab 0x05 durchlässt? Wenn ich das Reference Manual richtig verstanden habe, könnte ich einfach einen Mask-Filter hinten dranhängen, der alle IDs durchlässt (auch die ersten 4), da der List-Filter ja Priorität gegenüber dem Mask-Filter hat. Wäre das eine Lösung? Achso: Habe einen STM32F407, namentlich das zugehörige Discovery hier... Danke an alle Antwortenden! Viele Grüße, Christoph
Für alle Interessierten: Habs eben probiert mit dem Mask-Filter, der alles durchlässt, und siehe da, es funktioniert, welch Wunder! Die Frage, ob man aber z.B. definieren kann, nur die IDs 0x05 bis 0x0B durchzulassen (bewusst so gewählt, da beide IDs keine Bits gemeinsam haben, außer die oberen Nullen), bleibt allerdings bestehen, also falls jemand hierfür eine knackige Lösung parat hat, immer her damit!
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.