mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik STM32F733 und SPI: Bitanzahl passt nicht


Autor: Pepe (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: A. B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

Autor: Pepe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.