STM32F733 und SPI: Bitanzahl passt nicht

Gast #5608526
Hallo.
Ich verwende einen STM32F733 und möchte per SPI ein Bitmuster (insgesamt 
4 Byte) einlesen. Wollte eigentlich byteweise einlesen.

Hier meine Init:

  hspi3.Instance = SPI3;
  hspi3.Init.Mode = SPI_MODE_MASTER;
  hspi3.Init.Direction = SPI_DIRECTION_2LINES;
  hspi3.Init.DataSize = SPI_DATASIZE_8BIT;
  hspi3.Init.CLKPolarity = SPI_POLARITY_HIGH;
  hspi3.Init.CLKPhase = SPI_PHASE_2EDGE;
  hspi3.Init.NSS = SPI_NSS_SOFT;
  hspi3.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_256;
  hspi3.Init.FirstBit = SPI_FIRSTBIT_MSB;
  hspi3.Init.TIMode = SPI_TIMODE_DISABLE;
  hspi3.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
  hspi3.Init.CRCPolynomial = 7;
  hspi3.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
  hspi3.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
  HAL_SPI_Init(&hspi3);

Zum Starten des Einlesens schreibe ich ins DR Register und der SPI legt 
los. SPI3->DR = 0

Aber der SPI erzeugt immer 16 Clocks und nicht wie eingestellt 8.
Habe CR1 & CR2 schon per Hand durchgeschaut, aber mir fällt nichts auf, 
warum die Bitlänge nicht passt.
Folgende Werte stehen in den Registern: CR1 = 0x037F; CR2 = 0x1748
direkt beim Starten des Einlesens.

Mit fällt gerade nichts mehr ein.
Kann mir jemand helfen?

Vielen Dank.
Pepe.
Angehängte Dateien:
Gast #5608572
Im RM, 28.5.9, steht's unter "Data Packing", Fig. 351:

Das DR ist ein 16-bit Register. SPI3->DR = 0 schreibt beim Datenformat 8 
Bit also ZWEI Einträge in den FIFO, sprich es kommen dann eben auch 2 * 
8 Bit heraus. Den Pointer auf uint8_t casten!
Gast #5608588
Kaum schreib ich als uint8_t ins DR funktioniert es auch.
Danke für die schnelle Hilfe. Hat mich heute seit 11:30 beschäftigt.
Hätt' ich mal früher gefragt ;-)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.