Forum: Mikrocontroller und Digitale Elektronik STM32 CanBus cannot get out of interrupt handler


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von mehmet karakaya (Gast)


Bewertung
0 lesenswert
nicht lesenswert
hello dear forum,

I try to make CANBUS of STM32F103RC work
I managed to make CANBUS send message in loopback mode
however when I turn on receive interrupt
the processor hangs at first message and watchdog resets the micro
---------------------------------------------
 CAN_ITConfig(CAN1, CAN_IT_FMP0, ENABLE);
---------------------------------------------
I suspect the code enters the interrupt handler and cannot leave it
I want to ask how do I fill following lines to reset interupt flag and 
pending bit
---------------------------------------------
void USB_LP_CAN1_RX0_IRQHandler(void)
{
CAN_ClearFlag(CAN1, ??????????);
CAN_ClearITPendingBit(CAN1,??????????);

  CanRxMsg RxMessage;

  CAN_Receive(CAN1, CAN_FIFO0, &RxMessage);
---------------------------------------------
thank you

von Lars F. (flemmy)


Bewertung
0 lesenswert
nicht lesenswert
Hey mehmet,

You use neither CAN_ClearFlag nor CAN_ClearITPendingBit. According to 
the reference manual (p. 683) CAN_IT_FMP0 is set and reset by hardware. 
As soon as you call CAN_Receive one message from the RX FIFO is read. 
The interrupt won't be called again, as soon as the FIFO message count 
has reached 0.

Greetings

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.