Gast
#4150959
Hallo, ich habe mit CubeMX von ST mir ein Codegerüst erzeugt das eine USB Device Schnittstelle als virtuellen COM-Port enthält. Im Code sind dann die Funktionen CDC_Receive_FS und CDC_Transmit_FS enthalten. Wenn ich das Programm flashe und mein Board an den PC anstecke wird der Port richtig erkannt und auch der Treiber automatisch erkannt (Win7). Mit der Transmit-Funktion kann ich Daten an den PC senden, das klappt wunderbar. Bei einem empfangenen Byte wird ein Interrupt ausgelöst und dieser landet dann irgendwann in der Funktion CDC_Receive_FS. Hier kann ich das Byte dann auch auslesen und verarbeiten. Das funktioniert aber leider nur einmal. Nachdem das erste Byte empfangen wurde stehen im Endpoint-Register STAT_RX die Bits nicht auf 0x3, damit empfangene Pakete mit ACK bestätigt werden sondern auf 0x2, wodurch das Paket nicht richtig empfangen wird und auch kein Interrupt ausgegeben wird. Ich nutze einen STM32L162-Prozessor auf einem Eval-Board, IDE ist IAR. Hat jemand schon mal mit CubeMX die USB-Schnittstelle nutzen können? Wird hier eine falsche/alte Lib mitausgeliefert? Vielen Dank für eure Hilfe Chris