Hallo, ich versuche gerade die beiden CAN-Interfaces des STM32F105V8 in Betrieb zu nehmen und leider scheitere ich an den Empfangs-Interrupts. Das Senden von CAN-Messages klappt bei CAN1 problemlos, bei CAN2 allerdings nur einmal - danach hängt sich das Programm irgendwo auf. Leider klappt der Empfang aber bei beiden nicht richtig, die Interrupt-Routinen werden nie aufgerufen. An den RX-Pins kommt die Nachricht aber an (sehe ich auf dem Logic-Analyzer) und wenn ich meine beiden CAN-Transceiver (MCP2551) zusammen schließe, kann ich auch eine Nachricht von CAN1 an CAN2 oder umgekehrt senden und bekomme vom empfangenden CAN-Interface ein Acknowledge - das Empfangen klappt also scheinbar richtig, nur den Interrupt bekomme ich nicht hin. Ich habe den ganzen CAN-Kram mal in die angehängte Datei kopiert. Vielleicht fällt ja noch jemandem was ein. Danke schonmal. Chris
Hallo, ich weiss nicht ob die Frage noch aktuell ist, poste aber mal falls jemand auf das gleiche Problem stößt. Es sieht auf den ersten Blick so aus als wenn du bei dem CAN2 den Filter 14 für den FIFO1 konfigurierst und auch in der Interruptroutine abfragst. Allerdings erlaubst du mit
1 | CAN_ITConfig(CAN2, CAN_IT_FMP0, ENABLE); |
den Interrupt für den FIFO0 und nicht FIFO1. Das müsste vielleicht angeglichen werden. Mfg P.Reuss
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.