Hallo zusammen, ich versuche gerade, über die Serielle Schnittstelle von einem alten Gerät Daten einzulesen. Diese müssen zunächst mit einem Datenwort, bestehend aus 2 Bytes angefordert werden, anschließend folgt die Antwort ebenfalls mit zwei Bytes. Das Anfordern klappt wohl bereits, lediglich die Antworten sind nur abschnittsweise verwertbar. Ich hole in einer weiteren Funktion erst ab, wenn die Antworten da sind! Dabei fällt Folgendes auf: Immer die unteren 4 Bits pro Antwortbyte ( beim HighByte und LowByte ) werden korrekt übermittelt, die oberen 4 geben dagegen nie die erwarteten Werte wieder ( fordere momentan nur Testbytes an, die folgende Art haben müssten: 0x55 und 0xAA, ankommen tut 0x"?"5 sowie 0x"?"A. Gestern kam noch der Einwand, dass es evtl. an der Baudrate liegen könnte, hab da aber auch nochmals alles überprüft. Das alte Gerät hat folgende Einstellungen: 8 Datenbits, No Parity, 2 StopBits, 9,6 kBaud. Evtl. ist im Init-Bereich noch was faul und ihr seht den Fehler. Danke jedenfalls schon mal. Max
hallo max, was mir bei deinem code abgeht ist die aktivierung des clocks für den uart. außerdem würde ich dir empfehlen, die funktionen aus der atmel-library (lib_AT91SAM7S64.h)einzusetzen . desweiteren kann ihc dir die examples von www.at91.com ans herz legen. die dir mal wie eine peripherie am besten zu init. ist hier mal eine liste der funktionsaufrufe die bei mri zum ziel geführt haben: AT91F_PIO_CfgPeriph(...); AT91F_US0_CfgPMC(); AT91F_US_Configure(...), AT91F_US_EnableTx(); AT91F_US_EnableRx(); gruss gerhard
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.