Gast
#4811628
Hallo, ich habe ein grundsätzliches Problem mit dem Senden und Empfangen von UART-Bytes per STM32F4 Controller. Ich nutze die Funktionen HAL_UART_Receive HAL_UART_Receive_IT HAL_UART_Transmit_IT Jede für sich alleine genommen funktioniert mit gewissen Einschränkungen, nur wenn ich sie kombinieren will, dann klappt das so überhaupt garnicht. Beispiel: Empfangen eines Textes mit Receive_IT klappt grundsätzlich. Es wird zwar kein erkennbarer Interrupt ausgelöst wenn die Anzahl gewünschter Bytes empfangen wird, aber prinzipiell landen die Bytes schon mal da wo sie hinsollen. Hier ist also eine (untergeorndete ) Frage: Warum erhalte ich keinen Interrupt, wenn die Anzahl X-Bytes empfangen wurde? Die ServiceRoutine wird tatsächlich jedesmal aufgerufen... Größeres Problem: Wenn ich einen Text rausschicke und eine Antwort erwarte, dann kommt im Antwortspeicher überhaupt nichts an. Vorgehen ist, dass ich Receive_IT aufrufe, so dass diese genügend Zeichen einer Antwort aufnehmen können sollte, danach schicke ich meinen Befehl mit der Transmit_IT auf die Reise und nun möchte ich die Antwort aufnehmen. Sie kommt aber nicht an... Muss man bei dem Aufruf der Funktionen irgendwas beachten, oder können sie erst gestartet werden, nachdem bestimmte Bedingungen erfüllt sind? Oder kann ich grundsätzlich nur dann etwas senden, wenn die Receive-Funktion bereits beendet ist und tatsächlich ihre X Bytes empfangen hat?