Heyho,
Ich versuche einen Chararray über UART an mein HTerm zu senden.
Außerhalb der while schleife funktioniert es auch, in der while schleife
scheint der UART bei dem senden fest zu stecken. Um genau zu sein bei
Studi schrieb:> Heyho,
Alo-Ahe, Freddy.
Studi schrieb:> Sitze seit ein paar Tagen an dem Problem. Weis nicht mehr weiter.
Also, wenn du weiter so mit diesem Zeugs:
herummurkst, dann wirst du auch noch weitere Tage am Problem sitzen und
weiterhin nicht weis sein.
Ich hatte hier schon des öfteren diverses auch zu den STM32 gepostet,
unter anderem auch eine Art "Starter-Kit" für den STM32F103, wo eben
auch ein funktionabler Lowlevel-Treiber für die UART's dabei war. Sowas
brauchst du - und nicht ein Herumackern auf irgendwelchen
Hal-Uart-Blabla-Funktionen und obendrein auch noch solch abenteuerliche
Formulierungen wie oben gezeigt.
Bei mir heißt sowas schlicht
1
String_Out("Studi muß dazulernen",toUART0);
und das funktioniert (mit meinen I/O-Funktionen). Such einfach mal nach
"STM32F103C8T6.ZIP"
W.S.
W.S. schrieb:> Ich hatte hier schon des öfteren diverses auch zu den STM32 gepostet,> unter anderem auch eine Art "Starter-Kit" für den STM32F103, wo eben> auch ein funktionabler Lowlevel-Treiber für die UART's dabei war.
Ja, mit Magic Numbers beim init.
Wenn also wer gaaaaanz leise sein sollte dann du!
Mw E. schrieb:> Ja, mit Magic Numbers beim init.> Wenn also wer gaaaaanz leise sein sollte dann du!
Ich schätze mal, daß du derjenige bist, der ganz leise sein sollte und
währenddessen mal ganz gründlich nachdenken sollte über den Zweck von
Zahlen in einem Programm.
Also nicht gedankenlos nachplappern von allem, was dir mal jemand
eingebleut hat, sondern kritisch hinterfragen. Und da ist meine Methode,
sich auf so wenig Abhängigkeiten wie sinnvoll möglich einzulassen,
allemal die weitaus bessere. Abgesehen davon hast du offensichtlich
den eigentlichen Sinn der Konfigurations-C-Quelldatei nicht im
geringsten kapiert.
Apollo M. schrieb:> schlaumann poste hier mal bitte den link zu dem zip
Darf ich dir dann auch noch deine Firmware für lau schreiben? Ja?
W.S.
Harry L. schrieb:> Was ein Gefummel...
Würde ich auch sagen. Schien mir dann aber zu einfach gedacht.
Eigentlich versucht er nur die HAL_UART_Transmit Funktion nachzubauen.
Allerdings würde ich mystring vom Typ char nehmen und strlen() benutzen
um flexibel zu sein in der Anzahl der Zeichen.
pegel schrieb:> Allerdings würde ich mystring vom Typ char nehmen und strlen() benutzen> um flexibel zu sein in der Anzahl der Zeichen.
HAL_UART_Transmit erwartet an der Stelle einen uint8_t *.
Aber mit strlen() hast du natürlich recht! (geht auch mit uint8_t *)
Bei meinem Beispiel würde er das \0 mitsenden...sorry - my fault.
Dann eben so:
pegel schrieb:> Würde ich auch sagen. Schien mir dann aber zu einfach gedacht.> Eigentlich versucht er nur die HAL_UART_Transmit Funktion nachzubauen.
Nein wollte sie nur posten zur info.
Mein Problem ist, dass ich die Transmit-Funktion einmal in einer
Dauerschleife aufrufen kann, das char einmal übermittelt wird und die
Funktion dann fest steckt bei dem "waitonflag". Wenn ich zyklisch Daten
auf den UART ausgeben möchte, ist es besser dies über Interrupt zu
realisieren?
Studi schrieb:> pegel schrieb:>> Würde ich auch sagen. Schien mir dann aber zu einfach gedacht.>> Eigentlich versucht er nur die HAL_UART_Transmit Funktion nachzubauen.>> Nein wollte sie nur posten zur info.>> Mein Problem ist, dass ich die Transmit-Funktion einmal in einer> Dauerschleife aufrufen kann, das char einmal übermittelt wird und die> Funktion dann fest steckt bei dem "waitonflag". Wenn ich zyklisch Daten> auf den UART ausgeben möchte, ist es besser dies über Interrupt zu> realisieren?
Wozu das ganze Gefummel?
Hit HAL_UART_Transmit() kannst du problemlos in einer Dauerschleife
senden ohne selbst irgendwelche Flags berücksichtigen zu müssen.
Die Funktion kehrt erst zurück, wenn alle Daten übertragen wurden.
Natürlich ist es besser, sowas mit Interrupts zu machen, aber dann musst
du dir auch dezu passende FIFOs bauen, und mir scheint, deine Probleme
liegen im Moment noch auf einer ganz anderen Ebene.