Hallo! Ich habe das Problem bei einem STM32F427 mit CDC Interface das Ende einer laufenden Übertragung zu erkennen. Der USB-Stack ist mit CubeMX zusammengeklickt und hat Version 1.4 (die derzeit aktuellste). Für die Übertragung verwende ich "CDC_Transmit_FS", welches einen Pointer und ein Längenfeld nimmt. Vom der CDC-Implementierung wird der Buffer mit USBD_CDC_SetTxBuffer direkt gesetzt, dann USBD_CDC_TransmitPacket aufgerufen. Dieses prüft mit "(hcdc->TxState == 0)" ab ob bereits eine Übertragung läuft und setzt sonst TxState auf 1 und beginnt die Übertragung. Problem: der in der CDC-Klasse implementierte Callback "USBD_CDC_DataIn" welcher TxState wieder resetten soll wird nie aufgerufen. Er wird in der Callback-Struktur "USBD_ClassTypeDef USBD_CDC" referenziert und sollte dann vom USB-Core in "USBD_LL_DataInStage" aufgerufen werden: OTG_FS_IRQHandler -> HAL_PCD_IRQHandler -> HAL_PCD_DataInStageCallback (weak-Funktion durch CDC-Klasse überschrieben) -> USBD_LL_DataInStage -> DataIn (USBD_CDC_DataIn) Scheinbarer Fehler ist, dass "HAL_PCD_DataInStageCallback" nur aufgerufen wird, wenn das XFRC-Interrupt (Transfer Complete) gesetzt ist - dies wird aber nirgends aktiviert. Versuche es manuell "irgendwo" zu aktivieren waren nicht erfolgreich. Hatte jemand schon mal das Problem? Viele Grüße Robert