Forum: Mikrocontroller und Digitale Elektronik Falscher Wert im Register. STLink Bug?


von TriHexagon (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

also entweder bin ich auf einen Bug im STLink gestoßen oder es handelt 
sich mal wieder um ein klassisches Layer 8 Problem. Bin gerade an einer 
SPI Initialisierung, nichts besonderes. Ich konfiguriere den GPIO Port, 
schalte die Taktversorgung für SPI1 ein, setze CR1/CR2. Alles wie 
gehabt, nun will ich das SPE Bit im CR1 Register setzen und zack nichts 
geht mehr. Aus irgendeinem mir nicht ersichtlichen Grund, wird das CR1 
Register falsch gesetzt. Das SPE Bit wird nicht gesetzt und das MSTR ist 
nun ebenfalls falsch! Darauf habe ich mir das Dissassembly und die 
Register angesehen, das passt alles soweit. Der Richtige Wert (0x2F4) 
steht im Register und wird mit einem STR auf die richtige Adresse 
geschrieben (0x40013000). Wenn ich das Register (CR1) danach auslese, 
bekomme ich aber 0x2B0. Ich kanns mir jedenfalls nicht erklären. Ich 
benutze das STM32F3Discovery (STM32F303xC). Screenshots sind dabei. 
Vielen Dank im Voraus!

von TriHexagon (Gast)


Lesenswert?

Ok ich habs. Ich muss das SSI Bit setzen, sonst gibts ein Mode fault und 
das SPI schaltet sich wieder aus, wenn der Pin nicht von der SPI als NSS 
angesteuert wird. Steht in einer Fußnote drin, kommt davon wenn man das 
Datenblatt nur überfliegt.

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
Noch kein Account? Hier anmelden.