STM32F4 USB CDC Device EP Empty Interrupt

OP (Firma: EleLa - www.elela.de) #3866159
Lesenswert?
• ▲
▼
Ich habe die USB Device Lib von ST eingebunden (version V2.1.0) und ein 
paar Endpoints erstellt. Mit LibUSB kann ich auch Daten austauschen, 
solange ich es einzeln von Hand mache.

Ich sende ein Byte über UART an den STM32, dieser setzt es in den IN 
Endpoint und dann drücke ich eine Taste in der PC Software und das Byte 
wird gelesen. So weit so gut.

Nun wollte ich das ganze automatisch machen, also ein Thread erstellt, 
der nonstop den IN Endpoint abfrägt.

Aber nun "Hängt" der STM32 in der Interrupt Routine fest und es kommt 
immer der Empty Interrupt vom EP.
Ist ja klar, der EP ist nach der Übertragung ja auch wieder leer.

In der Datei usb_dcd_int.c der ST Lib:
1
static uint32_t DCD_HandleInEP_ISR(USB_OTG_CORE_HANDLE *pdev)
2
: :
3
      if (diepint.b.emptyintr)
4
      {
5
        DCD_WriteEmptyTxFifo(pdev , epnum);
6
        CLEAR_IN_EP_INTR(epnum, emptyintr);
7
      }
das "CLEAR_IN_EP_INTR()" wird aufgerufen, jedoch setzt der STM32 dieses 
Bit sofort wieder erneut.

Wie kann ich dieses Bit löschen, so dass dieser Interrupt nicht erneut 
auslöst?
Oder muss ich noch was anders konfigurieren in irgend welchen #define?

Danke für eure Hilfe, Markus

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.