Hallo *, kurze Frage: Kann ich bei einem mit dem UART des STM32 verbunden Pin während dem UART-Betrieb den Pegel abfragen oder muss ich vorher die Funktion des Pins umschalten?
C. W. schrieb: > STM32 verbunden Pin > während dem UART-Betrieb den Pegel abfragen Ja. Allerdings kann der eingelesene Status schon ein paar Takte alt sein.
Sehr gut - ist nicht so zeitkritisch. Ich mus bei einem 1-Wire Protokoll darauf warten das der Partner das Telegramm mit einem low auf dem Bus quittiert.
Gast
#5350892
Ich kann grad nicht nachsehen aber ich meine der UART hat sogar ein Bit in einem Register das den aktuellen Pin Zustand enthält. Schau auch ggf. mal den IDLE Interrupt an.
Dr. Sommer schrieb: > Ich kann grad nicht nachsehen aber ich meine der UART hat sogar ein Bit > in einem Register das den aktuellen Pin Zustand enthält. Schau auch ggf. > mal den IDLE Interrupt an. Wäre zu schön gewesen - ich finde im Reference Manual leider nichts. das Thema IDLE bringt wohl leider nichts, da das Bit nur gesetzt wird aber nicht wieder sebstständig gelöscht wird bis wieder Daten gekommen sind.
Gast
#5350943
C. W. schrieb: > das Thema IDLE bringt wohl leider nichts, da das Bit nur gesetzt wird > aber nicht wieder sebstständig gelöscht wird bis wieder Daten gekommen > sind. Ich meine dass es nur beim 1. IDLE Frame gesetzt wird und dann erst wieder nach dem nächsten empfangenen Byte, wenn da denn eine Pause kommt.
Da mein Bus ja nach dem Senden in den IDLE-Zustand geht würde das Bit ja gesetzt werden. Ein Rücksetzen bei der Quittung würde meines Erachtens nicht stattfinden.
Gast
#5351122
Ja, man muss es ggf. in der ISR löschen. Der Interrupt kommt nur 1x. Ich habe damit mal eine Paket Erkennung gebaut
Danke für die Gedanken aber ich ziehe wohl lieber ne Schleife bis ich im IDR mein Ack sehe oder wegen eines Timeout abbreche.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.