Gast
#2077267
Hallo, ich moechte gerne den CAN-Filter des STM32 (hier: STM32F103) zur Filterung von CAN-Botschaften (0x700 - 0x70f) nutzen. Irgendwie klappt die Filterung aber nicht mit der unten aufgefuehrten Initialisierung. Bisher geht entweder alles durch oder nix. Ich verwende hierzu die ST Library v3.40. Leider finde ich nirgendwo eine Beispielcode, der eine Filterung vornimmt. Auch bei den ST Beispielen ist der Filter immer "offen" CAN_FilterIdLow=0x0000. Wer hat diese Struktur schon erfolgreich mit Filterfunktion im Einsatz und kann nochmal kurz beispielhaft aufzeigen wie ich eine einzelne CAN-ID filter und wie einen Bereich. Die Zusammenhaenge von CAN_FilterMode_IdMask und CAN_FilterMode_IdList sowie CAN_FilterScale_32bit und CAN_FilterScale_16bit sind mir in ihrer Anwendung nicht richtig klar. /* CAN filter init */ CAN_FilterInitStructure.CAN_FilterNumber = 0; CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask; CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit; CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000; CAN_FilterInitStructure.CAN_FilterIdLow = 0x0700; CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000; CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x07F0; CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0; CAN_FilterInitStructure.CAN_FilterActivation = ENABLE; CAN_FilterInit(&CAN_FilterInitStructure); Mike