Forum: Mikrocontroller und Digitale Elektronik STM32 Can TimeOut (HAL_CAN_TRANSMIT)


von Peter H. (peter_hilleb)


Lesenswert?

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?

von Christopher J. (christopher_j23)


Lesenswert?

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
von Jim M. (turboj)


Lesenswert?

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