Ich sende vom STM Nachrichten über Can zu einem Raspi. Der Raspi macht einen Candump, der STM sendet. Die Nachrichten kommen einwandfrei an. Ich nehme die funktion hal_can_transmit()zum senden. Diese kehrt immer erst zurück wenn der timeout um ist. Hat jemand eine Ahnung was das sein könnte?
Guckst du im entsprechenden HAL User-Manual für deinen Controller im Kapitel "HAL CAN Generic Driver", Unterkapitel "CAN Firmware driver API description", Absatz "How to use this driver". Was du machst: "Polling mode IO Operation" Was du (vermutlich) willst: "Interrupt mode IO Operation"
:
Bearbeitet durch User
Peter H. schrieb: > Der Raspi macht einen Candump, der STM sendet. > Die Nachrichten kommen einwandfrei an. > > Ich nehme die funktion hal_can_transmit()zum senden. > Diese kehrt immer erst zurück wenn der timeout um ist. Ich lese da: Niemand sendet das für CAN notwendig ACK. Damit wiederholt der STM solage bis sein Fehlerzähler überläuft oder das Timeout zuschlägt. Ein CAN Bus braucht immer mindestens 2 aktive Teilnehmer.
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.