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!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.