Ingo schrieb:
> ich möchte gern Messwerte, die von meinem STM32F4 über die serielle
> Schnittstelle kommen über RS232 an einen PC schicken. Dort sollen sie
> als Datei gespeichert werden.
Soweit kein Problem.
> Dabei sind es 50.000 Messwerte zu je 2 Byte, die zum PC gesendet werden.
> Das ganze mit 230400 Baud.
Immer noch kein Problem.
> Wenn ich meinem PC jetzt ein solchen
> Datenblock sende, gibts n Bluescreen und die Kiste bootet neu.
Das ist ein Problem. Mieser Treiber mit eingebautem Pufferüberlauf.
Höchstwahrscheinlich irgendein USB-Gammel. Es muß nichtmal der Treiber
des Gerätes selber schuld sein, es genügt, wenn irgendeiner der
beteiligten USB-Treiber querschießt, wobei "beteiligt" in diesem
Zusammenhang nur bedeutet, daß er geladen sein muß, also typisch: das
zugehörige Gerät angeschlossen ist.
Weil das so ist, fängt Fehlersuche im USB-Bereich immer damit an, alle
Geräte abzustopseln, soweit das möglich ist (intern per USB angebundene
Geräte kann man leider oft nicht abstöpseln).
Mit ein bissel Glück kann man dann durch systematisches Durchprobieren
den problemverursachenden Treiber bzw. die problemverursachende
Treiberkombination ermitteln.
> Es soll später so sein, dass für jeden Datenblock eine Datei erzeugt
> wird.
> Bei den Daten handelt es sich um unformatiertes Hex, somit wäre ein
> Zusammensetzen von 2 Byte zu einem Wort echt gut.
Dann mußt du ein Protokoll mit einem Mechanismus zur
Wort-Synchronisation vorsehen. So einfach ist das. In einem wirklich
unformatierten Strom beliebiger Daten ist eine Synchronisation schlicht
nicht zuverlässig möglich. Jeder kleine Lesefehler bringt die Sache aus
dem Gleichtakt.